/* Contact Us page for Joomla + Solidres Revive. Keep all styles scoped. */
.slw-contact-page {
  --cu-deep:#071d10;
  --cu-forest:#123f25;
  --cu-green:#2d7650;
  --cu-green-2:#1f623f;
  --cu-gold:#c99d35;
  --cu-sand:#f5f0e3;
  --cu-cream:#fbfaf6;
  --cu-text:#29352d;
  --cu-muted:#657168;
  --cu-line:#dce5dc;
  --cu-shadow:0 10px 26px rgba(12,42,24,.075);
  color:var(--cu-text);
  background:#fff;
  font-family:Poppins,Arial,sans-serif;
  font-size:15px;
  line-height:1.55;
}
.slw-contact-page,.slw-contact-page *{box-sizing:border-box}
.slw-contact-page a{text-decoration:none}
.slw-contact-page img{display:block;max-width:100%}
.slw-contact-page svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.slw-contact-page .slw-contact-icons{position:absolute;width:0;height:0;overflow:hidden}
.slw-contact-wrap{width:min(1120px,92vw);margin:0 auto}
.slw-contact-section{padding:54px 0}
.slw-contact-section-title{text-align:center;margin:0 auto 26px;max-width:760px}
.slw-contact-section-title--compact{margin-bottom:22px}
.slw-contact-section-title--left{text-align:left;margin:0 0 23px;max-width:none}
.slw-contact-section-title>span,.slw-contact-eyebrow{display:inline-block;color:var(--cu-gold);font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.slw-contact-section-title h2,.slw-contact-info-card h2,.slw-contact-help-card h2,.slw-contact-booking-card h2,.slw-contact-reservation-card h2,.slw-contact-cta h2{margin:5px 0 9px;color:var(--cu-deep);font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.65rem,3vw,2.25rem);line-height:1.13}
.slw-contact-section-title p{margin:0;color:var(--cu-muted);font-size:.92rem}

/* Hero */
.slw-contact-hero{position:relative;display:flex;align-items:center;min-height:360px;overflow:hidden;isolation:isolate;background:var(--cu-deep);color:#fff}
.slw-contact-hero__image,.slw-contact-hero__shade{position:absolute;inset:0;width:100%;height:100%}
.slw-contact-hero__image{z-index:-2;object-fit:cover;object-position:center 44%}
.slw-contact-hero__shade{z-index:-1;background:linear-gradient(90deg,rgba(3,20,10,.91) 0%,rgba(3,20,10,.75) 41%,rgba(3,20,10,.28) 70%,rgba(3,20,10,.08) 100%)}
.slw-contact-hero__content{padding:54px 0}
.slw-contact-hero h1{max-width:640px;margin:8px 0 13px;color:#fff;font-family:Georgia,"Times New Roman",serif;font-size:clamp(3.05rem,6vw,4.65rem);line-height:.98}
.slw-contact-hero p{max-width:620px;margin:0;color:rgba(255,255,255,.9);font-size:1rem;line-height:1.58}
.slw-contact-trust{display:flex;align-items:center;gap:9px;margin:17px 0 0;color:#fff;font-size:.88rem}
.slw-contact-trust svg{width:20px;height:20px;color:#efc85f}
.slw-contact-actions{display:flex;flex-wrap:wrap;gap:11px;margin-top:23px}
.slw-contact-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:43px;padding:10px 16px;border:1px solid transparent;border-radius:7px;font-size:.82rem;font-weight:800;transition:transform .18s ease,background .18s ease,border-color .18s ease}
.slw-contact-btn:hover,.slw-contact-btn:focus{transform:translateY(-1px)}
.slw-contact-btn svg{width:18px;height:18px}
.slw-contact-btn--primary{background:var(--cu-forest);color:#fff}
.slw-contact-btn--primary:hover,.slw-contact-btn--primary:focus{background:var(--cu-green-2);color:#fff}
.slw-contact-btn--ghost{border-color:rgba(255,255,255,.62);background:rgba(255,255,255,.06);color:#fff}
.slw-contact-btn--ghost:hover,.slw-contact-btn--ghost:focus{background:#fff;color:var(--cu-deep)}
.slw-contact-btn--outline{border-color:#aebdad;background:transparent;color:var(--cu-forest)}
.slw-contact-btn--outline:hover,.slw-contact-btn--outline:focus{background:#fff;color:var(--cu-deep)}
.slw-contact-btn--gold{background:#e1b84e;color:#16351f}

/* Contact method cards */
.slw-contact-methods-section{background:var(--cu-cream)}
.slw-contact-methods{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}
.slw-contact-method-card{display:grid;grid-template-columns:48px 1fr;gap:15px;align-items:start;min-height:173px;padding:22px;background:#fff;border:1px solid var(--cu-line);border-radius:14px;box-shadow:var(--cu-shadow)}
.slw-contact-icon-disc,.slw-contact-feature-icon,.slw-contact-reservation-icon,.slw-contact-booking-card__icon{display:grid;place-items:center;border-radius:50%;background:#f1ead4;color:var(--cu-forest)}
.slw-contact-icon-disc{width:48px;height:48px}
.slw-contact-icon-disc svg{width:25px;height:25px}
.slw-contact-method-card h3{margin:1px 0 7px;color:var(--cu-deep);font-family:Georgia,"Times New Roman",serif;font-size:1.16rem;line-height:1.2}
.slw-contact-method-card p{margin:0 0 12px;color:var(--cu-muted);font-size:.84rem;line-height:1.48}
.slw-contact-method-card a,.slw-contact-specialist-grid a{color:var(--cu-green);font-size:.81rem;font-weight:800}

/* Main form and sidebar */
.slw-contact-main{background:#fff}
.slw-contact-main-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(285px,.75fr);gap:18px;align-items:start}
.slw-contact-form-card,.slw-contact-info-card,.slw-contact-help-card,.slw-contact-booking-card{background:#fff;border:1px solid var(--cu-line);border-radius:15px;box-shadow:var(--cu-shadow)}
.slw-contact-form-card{padding:27px}
.slw-contact-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.slw-contact-form label{display:flex;flex-direction:column;gap:6px;color:var(--cu-deep);font-size:.76rem;font-weight:700}
.slw-contact-form label>span b{color:#ae3e2d}
.slw-contact-form input,.slw-contact-form select,.slw-contact-form textarea{width:100%;border:1px solid #d8dfd8;border-radius:6px;background:#fff;color:var(--cu-text);font:inherit;font-size:.84rem;outline:none;transition:border-color .18s ease,box-shadow .18s ease}
.slw-contact-form input,.slw-contact-form select{height:43px;padding:0 11px}
.slw-contact-form textarea{min-height:130px;padding:11px;resize:vertical}
.slw-contact-form input:focus,.slw-contact-form select:focus,.slw-contact-form textarea:focus{border-color:var(--cu-green);box-shadow:0 0 0 3px rgba(45,118,80,.11)}
.slw-contact-form small{color:var(--cu-muted);font-size:.68rem;font-weight:400}
.slw-contact-message{margin-top:14px}
.slw-contact-consent{flex-direction:row!important;align-items:flex-start!important;gap:9px!important;margin-top:14px;color:var(--cu-muted)!important;font-weight:400!important;line-height:1.45}
.slw-contact-consent input{flex:0 0 auto;width:16px;height:16px;margin-top:2px}
.slw-contact-submit{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-width:175px;min-height:43px;margin-top:16px;padding:10px 18px;border:0;border-radius:6px;background:var(--cu-forest);color:#fff;font:inherit;font-size:.83rem;font-weight:800;cursor:pointer}
.slw-contact-submit:hover,.slw-contact-submit:focus{background:var(--cu-green-2)}
.slw-contact-submit svg{width:18px;height:18px}
.slw-contact-sidebar{display:grid;gap:14px}
.slw-contact-info-card,.slw-contact-help-card{padding:23px}
.slw-contact-info-card h2,.slw-contact-help-card h2{font-size:1.45rem;margin-top:0}
.slw-contact-info-list{display:grid;gap:13px;margin:18px 0 0;padding:0;list-style:none}
.slw-contact-info-list li{display:grid;grid-template-columns:31px 1fr;gap:10px;align-items:start}
.slw-contact-info-list li>span{display:grid;place-items:center;width:31px;height:31px;border-radius:50%;background:var(--cu-sand);color:var(--cu-forest)}
.slw-contact-info-list svg{width:17px;height:17px}
.slw-contact-info-list b{display:block;color:var(--cu-deep);font-size:.78rem}
.slw-contact-info-list a,.slw-contact-info-list p{display:block;margin:2px 0 0;color:var(--cu-muted);font-size:.8rem;line-height:1.4;overflow-wrap:anywhere}
.slw-contact-help-card{border-top:3px solid var(--cu-green)}
.slw-contact-help-card ul{display:grid;gap:7px;margin:14px 0 0;padding:0;list-style:none}
.slw-contact-help-card li{display:flex;align-items:center;gap:8px;color:var(--cu-muted);font-size:.8rem}
.slw-contact-help-card li svg{width:17px;height:17px;color:var(--cu-green)}
.slw-contact-booking-card{display:grid;grid-template-columns:46px 1fr;gap:13px;padding:20px;background:linear-gradient(135deg,#fff8db,#f5e4ad);border-color:#ead598}
.slw-contact-booking-card__icon{width:46px;height:46px;background:rgba(255,255,255,.55)}
.slw-contact-booking-card__icon svg{width:25px;height:25px}
.slw-contact-booking-card h2{font-size:1.2rem;margin:1px 0 6px}
.slw-contact-booking-card p{margin:0 0 10px;color:#536258;font-size:.78rem;line-height:1.43}
.slw-contact-booking-card a{display:block;padding:8px 10px;border-radius:5px;background:var(--cu-forest);color:#fff;text-align:center;font-size:.76rem;font-weight:800}

/* Existing reservation */
.slw-contact-reservation-section{padding-top:0;background:#fff}
.slw-contact-reservation-card{display:grid;grid-template-columns:58px 1fr auto;gap:20px;align-items:center;padding:23px 25px;background:linear-gradient(135deg,#f8f4e7,#f3f0e6);border:1px solid #e2ddcc;border-radius:14px}
.slw-contact-reservation-icon{width:58px;height:58px;background:var(--cu-forest);color:#fff}
.slw-contact-reservation-icon svg{width:28px;height:28px}
.slw-contact-reservation-card h2{margin:0 0 5px;font-size:1.45rem}
.slw-contact-reservation-copy p{margin:0;color:var(--cu-muted);font-size:.83rem;line-height:1.47}
.slw-contact-reservation-actions{display:grid;gap:9px;min-width:235px}
.slw-contact-reservation-actions .slw-contact-btn{min-height:39px;padding:8px 12px;font-size:.75rem}

/* Specialist requests */
.slw-contact-specialist{background:var(--cu-sand)}
.slw-contact-specialist-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.slw-contact-specialist-grid article{min-height:202px;padding:20px;background:#fff;border:1px solid var(--cu-line);border-radius:13px;box-shadow:var(--cu-shadow)}
.slw-contact-feature-icon{width:43px;height:43px;margin-bottom:13px}
.slw-contact-feature-icon svg{width:23px;height:23px}
.slw-contact-specialist-grid h3{margin:0 0 7px;color:var(--cu-deep);font-family:Georgia,"Times New Roman",serif;font-size:1.05rem;line-height:1.22}
.slw-contact-specialist-grid p{min-height:72px;margin:0 0 11px;color:var(--cu-muted);font-size:.8rem;line-height:1.46}

/* FAQ */
.slw-contact-faq{background:var(--cu-cream)}
.slw-contact-faq-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px 15px;max-width:1000px;margin:auto}
.slw-contact-faq details{align-self:start;background:#fff;border:1px solid var(--cu-line);border-radius:9px;box-shadow:0 4px 12px rgba(12,42,24,.035)}
.slw-contact-faq summary{position:relative;cursor:pointer;padding:13px 40px 13px 15px;color:var(--cu-forest);font-size:.82rem;font-weight:800;list-style:none}
.slw-contact-faq summary::-webkit-details-marker{display:none}
.slw-contact-faq summary:after{content:"+";position:absolute;right:15px;top:50%;transform:translateY(-50%);font-size:1.1rem;font-weight:500}
.slw-contact-faq details[open] summary:after{content:"−"}
.slw-contact-faq details p{margin:0;padding:0 15px 14px;color:var(--cu-muted);font-size:.79rem;line-height:1.47}

/* Final CTA */
.slw-contact-cta{position:relative;display:flex;align-items:center;min-height:230px;overflow:hidden;isolation:isolate;color:#fff}
.slw-contact-cta>img,.slw-contact-cta__shade{position:absolute;inset:0;width:100%;height:100%}
.slw-contact-cta>img{z-index:-2;object-fit:cover;object-position:center 42%}
.slw-contact-cta__shade{z-index:-1;background:linear-gradient(90deg,rgba(3,27,13,.92),rgba(3,27,13,.72) 58%,rgba(3,27,13,.2))}
.slw-contact-cta__content{padding:43px 0}
.slw-contact-cta h2{max-width:680px;margin:0 0 7px;color:#fff;font-size:2.05rem}
.slw-contact-cta p{margin:0;color:rgba(255,255,255,.87);font-size:.9rem}

/* Joomla page framing */
body.layout-contact-us #sp-slideshow,
body.layout-contact-us #sp-breadcrumb-navigation{display:none!important}
body.layout-contact-us #sp-main-body{padding:0!important}
body.layout-contact-us #sp-main-body>.container,
body.layout-contact-us #sp-main-body>.container>.container-inner{width:100%!important;max-width:none!important;padding-left:0!important;padding-right:0!important}
body.layout-contact-us #sp-main-body .container-inner>.row{margin-left:0!important;margin-right:0!important}
body.layout-contact-us #sp-component{width:100%!important;max-width:none!important;padding-left:0!important;padding-right:0!important}
body.layout-contact-us .article-details .article-header,
body.layout-contact-us .page-header{display:none!important}

.slw-contact-page .slw-contact-btn--primary,
.slw-contact-page .slw-contact-btn--ghost,
.slw-contact-page .slw-contact-btn--gold,
.slw-contact-page .slw-contact-submit{color:#fff!important}
.slw-contact-page .slw-contact-btn--gold{color:#16351f!important}
.slw-contact-alert{margin:0 0 18px;padding:13px 15px;border-radius:8px;font-size:.86rem;line-height:1.45}
.slw-contact-alert--success{border:1px solid #b6d4bb;background:#edf7ee;color:#245a34}
.slw-contact-alert--error{border:1px solid #e2b6ad;background:#fff0ed;color:#873b2e}
.slw-contact-errors{margin:8px 0 0;padding-left:18px}
.slw-contact-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.slw-shared-note{display:none;margin:12px 0 0;padding:11px 13px;border-left:3px solid var(--cu-gold);background:var(--cu-sand);color:var(--cu-muted);font-size:.8rem;line-height:1.45}
.slw-shared-note.is-visible{display:block}

@media(max-width:991px){
  .slw-contact-methods{grid-template-columns:repeat(2,1fr)}
  .slw-contact-main-grid{grid-template-columns:1fr}
  .slw-contact-sidebar{grid-template-columns:1fr 1fr}
  .slw-contact-booking-card{grid-column:1/-1}
  .slw-contact-reservation-card{grid-template-columns:58px 1fr}
  .slw-contact-reservation-actions{grid-column:1/-1;grid-template-columns:1fr 1fr}
  .slw-contact-specialist-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:700px){
  .slw-contact-page{font-size:15px}
  .slw-contact-wrap{width:min(100% - 28px,1120px)}
  .slw-contact-section{padding:44px 0}
  .slw-contact-hero{min-height:470px}
  .slw-contact-hero__image{object-position:60% center}
  .slw-contact-hero__shade{background:linear-gradient(90deg,rgba(3,20,10,.93),rgba(3,20,10,.68))}
  .slw-contact-hero h1{font-size:3.25rem}
  .slw-contact-methods,.slw-contact-form-grid,.slw-contact-sidebar,.slw-contact-specialist-grid,.slw-contact-faq-grid{grid-template-columns:1fr}
  .slw-contact-method-card{min-height:0}
  .slw-contact-form-card{padding:21px}
  .slw-contact-booking-card{grid-column:auto}
  .slw-contact-reservation-card{grid-template-columns:1fr;text-align:left}
  .slw-contact-reservation-actions{grid-column:auto;grid-template-columns:1fr;min-width:0}
  .slw-contact-specialist-grid p{min-height:0}
  .slw-contact-cta{min-height:300px}
  .slw-contact-cta h2{font-size:1.8rem}
}
@media(prefers-reduced-motion:reduce){.slw-contact-page *{scroll-behavior:auto!important;transition:none!important}}
