/* =========================================================
   GET SALTY — Elementor adjustments
   Makes Elementor's widgets use the Get Salty design.
   Anything you change in Elementor's own controls wins over this file.
   ========================================================= */

/* No automatic spacing — sections control their own spacing */
body.get-salty-theme {
  --container-default-padding-top: 0px; --container-default-padding-right: 0px;
  --container-default-padding-bottom: 0px; --container-default-padding-left: 0px;
  --widgets-spacing: 0px; --widgets-spacing-row: 0px; --widgets-spacing-column: 0px;
  --kit-widget-spacing: 0px; --container-max-width: 1280px;
}
.elementor .e-con { --gap: 0px; --row-gap: 0px; --column-gap: 0px }

/* First section slides under the see-through menu */
main.gs-main .elementor > .e-con:first-child { --padding-top: calc(var(--nav-height) + var(--section-padding)) }
main.gs-main .elementor > .e-con.hero:first-child { --padding-top: calc(var(--nav-height) + var(--space-xl)) }

/* Sections & containers */
.e-con.section { --padding-top: var(--section-padding); --padding-bottom: var(--section-padding) }
.e-con.container { max-width: var(--container-max); width: 100%; margin-inline: auto; padding-inline: 1rem }
.e-con.narrow { max-width: var(--container-sm) }
.e-con.text-center { text-align: center; align-items: center }
.e-con.text-center > .elementor-widget { width: 100% }
.e-con.section--dark, .e-con.bg-inverse { background-color: var(--bg-inverse); color: var(--text-inverse) }
.e-con.bg-secondary { background-color: var(--bg-secondary) }
.e-con.bg-warm { background-color: var(--bg-accent-warm) }

/* Grid layouts from the design */
.e-con.preview-grid, .e-con.card-row, .e-con.crew-preview, .e-con.camp__grid, .e-con.pkg-grid, .e-con.pkg-feature,
.e-con.volunteer-grid, .e-con.volunteer-exchange, .e-con.support-options, .e-con.room-grid, .e-con.room-card,
.e-con.crew-grid, .e-con.art-grid { display: grid !important }
.e-con.gallery-blank { display: none !important }
.e-con.gallery-blank.is-shown { display: grid !important }
.e-con.gallery-art.is-hidden { display: none !important }
.e-con.card-row__item, .e-con.pkg-card, .e-con.pkg-feature__content, .e-con.support-option, .e-con.volunteer-content,
.e-con.crew-card, .e-con.crew-preview__card, .e-con.art-grid__item { display: flex !important; flex-direction: column }
.e-con.crew-card, .e-con.crew-preview__card { align-items: center; text-align: center; gap: .75rem }
.e-con.camp__price { gap: var(--space-md) }
.e-con.pkg-feature__content { gap: var(--space-sm) }
.e-con.volunteer-content { gap: .75rem }
.e-con.support-option { gap: .5rem }
.e-con.camp__price-block { gap: .25rem }
.e-con.room-card { grid-row: span 5; grid-template-rows: subgrid; row-gap: 0 }
.e-con.room-card > .elementor-widget { width: 100% }
.e-con.card-row__item > .elementor-widget, .e-con.pkg-card > .elementor-widget, .e-con.art-grid__item > .elementor-widget { width: 100% }
.btn-row > .elementor-widget { width: auto !important; flex: 0 0 auto !important }
.e-con.btn-row { --gap: 1rem; --row-gap: 1rem; --column-gap: 1rem; gap: 1rem }
.e-con.btn-row.mt-lg { margin-top: var(--space-lg) !important }
.e-con.btn-row.mt-md { margin-top: var(--space-md) !important }
.e-con.pkg-card__btns { margin: auto var(--space-md) var(--space-md) }
.e-con.pkg-feature__content .pkg-card__btns { margin: auto 0 0 }
.e-con.pkg-card__header { padding: var(--space-md) var(--space-md) 0 }

/* Headings */
.elementor-widget-heading .elementor-heading-title { font-family: var(--font-heading); font-weight: 400; line-height: 1.04em; letter-spacing: -.01em; margin-bottom: .7em; color: inherit }
.elementor-widget-heading h4.elementor-heading-title, .elementor-widget-heading h5.elementor-heading-title { line-height: 1.3em }
.elementor-widget-heading.h0 .elementor-heading-title { font-size: 7.99rem; margin-bottom: .3em }
.elementor-widget-heading.room-card__name .elementor-heading-title { font-size: 1.6rem; text-transform: uppercase; margin-bottom: 0 }
.elementor-widget-heading.c-accent .elementor-heading-title { color: var(--color-yellow) }
.elementor-widget-heading.c-purple .elementor-heading-title { color: var(--color-purple) }
.elementor-widget-heading.c-inverse .elementor-heading-title, .section--dark .elementor-heading-title, .bg-inverse .elementor-heading-title { color: var(--text-inverse) }
.elementor-widget-heading.c-accent .elementor-heading-title { color: var(--color-yellow) }
@media (max-width: 991px) {
  .elementor-widget-heading.h0 .elementor-heading-title { font-size: 6.39rem }
  .elementor-widget-heading.room-card__name .elementor-heading-title { font-size: 1.4rem }
}
@media (max-width: 767px) { .elementor-widget-heading.h0 .elementor-heading-title { font-size: 5.12rem } }
@media (max-width: 479px) { .elementor-widget-heading.h0 .elementor-heading-title { font-size: 4.09rem } .elementor-widget-heading.room-card__name .elementor-heading-title { font-size: 1.5rem } }

/* Text */
.elementor-widget-text-editor p:last-child { margin-bottom: .7em }
.elementor-widget-text-editor.camp__price-amount p, .elementor-widget-text-editor.camp__price-label p,
.elementor-widget-text-editor.room-card__eyebrow p, .elementor-widget-text-editor.art-caption p { margin-bottom: 0 }
.elementor-widget-text-editor.room-card__desc p { margin-bottom: 0 }
.elementor-widget-text-editor.pull-quote p { margin: 0 }

/* Lists */
.gs-list ul { list-style: none; padding: 0; margin: 0 }
.gs-list.camp__list ul { display: flex; flex-direction: column; gap: .6rem }
.gs-list.pkg-card__list ul { display: flex; flex-direction: column; gap: .5rem }
.gs-list.pkg-card__list { padding: 0 var(--space-md); margin-bottom: var(--space-sm); flex: 1 }
.pkg-feature__content .gs-list.pkg-card__list { padding: 0; flex: 0 }
.gs-list.volunteer-details ul { display: flex; flex-direction: column; gap: .4rem; margin-bottom: var(--space-xs) }
.gs-list.extras-grid ul { display: flex; flex-wrap: wrap; gap: .75rem }
.gs-list.extras-grid li { background: #fff2e0b3; color: var(--color-purple); border-left: 3px solid var(--color-purple); padding: .5em 1.2em .5em 1em; border-radius: var(--radius-round); font-size: .92rem }

/* Images */
.elementor-widget-image { text-align: left }
.elementor-widget-image img { display: block; width: 100%; height: auto }
.r-3-2 img { aspect-ratio: 3/2; object-fit: cover }
.r-4-3 img { aspect-ratio: 4/3; object-fit: cover }
.r-1-1 img { aspect-ratio: 1/1; object-fit: cover }
.img-slot img { border-radius: var(--radius-card) }
.card-row__item .img-slot img, .pkg-card .img-slot img, .art-grid__item .img-slot img { border-radius: 0 }
.crew-avatar img { width: 160px !important; height: 160px; border-radius: 50%; margin: 0 auto }
.crew-card__avatar img { width: 180px !important; height: 180px; border-radius: 50%; margin: 0 auto }
.room-card__image { padding-bottom: 1.25rem; align-self: end }
.room-card__image img { border-radius: var(--radius-card) }
.e-con.pkg-feature__image, .e-con.volunteer-image { position: relative; min-height: 320px }
.pkg-feature__image .elementor-widget-image, .volunteer-image .elementor-widget-image { position: absolute !important; inset: 0 }
.pkg-feature__image .elementor-widget-image img, .volunteer-image .elementor-widget-image img { width: 100%; height: 100%; object-fit: cover }
.volunteer-image .elementor-widget-image img { border-radius: var(--radius-card) }
@media (max-width: 767px) { .e-con.pkg-feature__image { min-height: 0; aspect-ratio: 3/2 } .e-con.volunteer-image { min-height: 0; aspect-ratio: 16/9 } }

/* Buttons */
.elementor-widget-button .elementor-button {
  display: inline-flex; align-items: center; justify-content: center; font-family: var(--font-body); font-size: 1.05rem; font-weight: 400; line-height: 1.4;
  border-radius: var(--radius-round); padding: .55em 1.6em; background: transparent; color: inherit; border: 2px solid currentColor; transition: transform .1s ease, box-shadow .1s ease, background .1s ease
}
.elementor-widget-button.btn-primary-light .elementor-button { border-color: var(--color-aubergine); color: var(--text-primary); box-shadow: 3px 4px 0 var(--color-purple-hover) }
.elementor-widget-button.btn-primary-light .elementor-button:hover { background: #f1e1f2; color: var(--text-primary); box-shadow: 5px 6px 0 var(--color-purple-hover); transform: translate(-1px,-1px) }
.elementor-widget-button.btn-primary-dark .elementor-button { border-color: var(--color-cream); color: var(--color-cream); box-shadow: 3px 4px 0 var(--color-yellow) }
.elementor-widget-button.btn-primary-dark .elementor-button:hover { background: #ff878726; color: var(--color-cream); box-shadow: 5px 6px 0 var(--color-yellow); transform: translate(-1px,-1px) }
.elementor-widget-button.btn-secondary .elementor-button { border-width: 1.5px; padding: .5em 1.4em; opacity: .75; color: var(--text-primary) }
.elementor-widget-button.btn-secondary .elementor-button:hover { opacity: 1; background: #2f153214; color: var(--text-primary) }
.elementor-widget-button.btn-secondary--on-dark .elementor-button, .elementor-widget-button.btn-secondary--on-dark .elementor-button:hover { color: var(--color-cream) }
.elementor-widget-button.btn-secondary--on-dark .elementor-button:hover { background: #fff2e01a }
.elementor-widget-button.btn-primary-rust .elementor-button { background: var(--color-rust); border-color: var(--color-rust); color: var(--color-cream); box-shadow: 3px 4px 0 var(--color-aubergine) }
.elementor-widget-button.btn-primary-rust .elementor-button:hover { background: #9b382c; border-color: #9b382c; color: var(--color-cream); box-shadow: 5px 6px 0 var(--color-aubergine); transform: translate(-1px,-1px) }

/* Support columns with dividers */
.e-con.support-options { grid-template-columns: repeat(3, 1fr) }
.e-con.support-option { padding-left: var(--space-lg); border-left: 1px solid var(--border-medium) }
.e-con.support-option:first-child { padding-left: 0; border-left: 0 }
@media (max-width: 767px) {
  .e-con.support-options { grid-template-columns: 1fr }
  .e-con.support-option { padding-left: 0; border-left: 0; padding-top: var(--space-lg); border-top: 1px solid var(--border-medium) }
  .e-con.support-option:first-child { padding-top: 0; border-top: 0 }
}

/* Art captions */
.art-caption { padding: .5rem 1rem; font-size: .8rem; color: var(--text-secondary) }
.art-caption a { color: var(--color-purple) }

/* While editing in Elementor: show everything */
.elementor-editor-active .reveal { opacity: 1 !important; transform: none !important }
.elementor-editor-active .e-con.gallery-blank { display: grid !important; outline: 2px dashed rgba(89,41,94,.3); outline-offset: 8px; margin-top: 3rem }

/* Gaps for the grid layouts (Elementor resets gaps to 0 above) */
.elementor .e-con.preview-grid { gap: var(--space-xl) }
.elementor .e-con.card-row, .elementor .e-con.pkg-grid { gap: var(--space-md) }
.elementor .e-con.crew-preview { gap: var(--space-lg) }
.elementor .e-con.camp__grid { gap: var(--space-xl) }
.elementor .e-con.volunteer-grid { gap: var(--space-xl) }
.elementor .e-con.volunteer-exchange { gap: var(--space-md) }
.elementor .e-con.support-options { gap: var(--space-lg) }
.elementor .e-con.room-grid { column-gap: var(--space-lg); row-gap: var(--space-xl) }
.elementor .e-con.room-card { row-gap: 0 }
.elementor .e-con.crew-grid { gap: var(--space-xl) var(--space-lg) }
.elementor .e-con.art-grid { gap: var(--space-sm) }
.elementor .e-con.pkg-grid { margin-bottom: var(--space-md) }
.elementor .e-con.room-grid { margin-bottom: var(--space-hero) }

/* The design's .btn-* classes sit on the widget wrapper — only the inner link is styled */
.elementor-widget-button.btn-primary-light, .elementor-widget-button.btn-primary-dark,
.elementor-widget-button.btn-secondary, .elementor-widget-button.btn-primary-rust {
  background: none !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; opacity: 1 !important; transform: none !important; display: block;
}
.pkg-feature__image .elementor-widget-container, .volunteer-image .elementor-widget-container { height: 100% }
