*,*::before,*::after{ margin:0; padding:0; box-sizing:border-box; }

:root{
  --brand-orange:#ee410c;
  --brand-orange-600:#d3380a;
  --brand-orange-700:#b22f08;
  --brand-orange-50:#fdece6;
  --brand-green:#0d6b32;
  --brand-green-600:#0a5528;
  --brand-green-700:#083f1e;
  --brand-green-50:#e6f1e9;
  --cream:#f0f2e6;
  --cream-2:#e8ebdb;
  --ink:#1f2937;
  --ink-2:#111827;
  --ink-3:#0a0f17;
  --gray-900:#111827;
  --gray-800:#1f2937;
  --gray-700:#374151;
  --gray-600:#4b5563;
  --gray-500:#6b7280;
  --gray-400:#9ca3af;
  --gray-300:#d1d5db;
  --gray-200:#e5e7eb;
  --gray-100:#f3f4f6;
  --gray-50:#f9fafb;
  --line:#e5e7eb;
  --container:1280px;
  --shadow-sm:0 1px 2px 0 rgba(0,0,0,.05);
  --shadow-md:0 4px 12px -2px rgba(0,0,0,.08);
  --shadow-lg:0 12px 32px -8px rgba(0,0,0,.14);
  --shadow-xl:0 22px 50px -12px rgba(0,0,0,.22);
}

html{ scroll-behavior:smooth; scroll-padding-top:7.75rem; }
html, body{ overflow-x:clip; }
body{
  font-family:'Geist', system-ui, sans-serif;
  color: var(--gray-800);
  background:#fff;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
::selection{ background: var(--brand-orange); color:#fff; }

.font-display{ font-family:'Lora', Georgia, serif; letter-spacing:-0.01em; }
.max-container{ max-width: var(--container); margin-left:auto; margin-right:auto; }
.tracking-hero{ letter-spacing:.22em; }
.text-xxs{ font-size:.625rem; }

.bg-cream{ background: var(--cream); }
.bg-white-soft{ background:#fff; }

.topbar{
  background: linear-gradient(90deg, var(--brand-green-700) 0%, var(--brand-green-600) 50%, var(--brand-green-700) 100%);
  color:#fff;
  border-bottom:1px solid rgba(0,0,0,.08);
}
.topbar-inner{
  height:2.5rem;
  display:flex; align-items:center; justify-content:center;
  gap:1.5rem; font-size:.8125rem; font-weight:500;
}
.topbar .sep{ opacity:.5; }

#navbar{
  position:relative; top:0; z-index:60;
  background:#fff;
  border-bottom:1px solid var(--line);
  transition: box-shadow .3s, background .3s;
}
@media(min-width:768px){
  #navbar{ position:sticky; }
}
#navbar.scrolled{
  box-shadow: 0 4px 20px -6px rgba(0,0,0,.10);
}
.h-nav{ height:5rem; }

.nav-brand{
  display:flex; align-items:center; gap:.75rem;
  text-decoration:none;
  min-width:0;
}
.nav-brand img{ height:2.5rem; width:auto; flex-shrink:0; }
@media(min-width:640px){ .nav-brand img{ height:2.75rem; } }
.nav-brand-text{ min-width:0; }
.nav-brand-name{
  display:block;
  font-family:'Lora', Georgia, serif;
  font-size:1.05rem; font-weight:600;
  color: var(--gray-900);
  line-height:1;
  white-space:nowrap;
}
@media(min-width:640px){ .nav-brand-name{ font-size:1.2rem; } }
.nav-brand-sub{
  display:none;
  margin-top:.2rem;
  font-size:.6875rem; font-weight:500;
  color: var(--gray-500);
  letter-spacing:.06em;
  text-transform:uppercase;
  white-space:nowrap;
}
@media(min-width:640px){ .nav-brand-sub{ display:block; } }

.nav-link{
  position:relative; padding:.55rem 1rem;
  color: var(--gray-700);
  font-size:.9rem; font-weight:500;
  text-decoration:none;
  transition: color .25s;
}
.nav-link:hover{ color: var(--brand-orange); }
.nav-link.active{ color: var(--brand-orange); }
.nav-link::after{
  content:''; position:absolute;
  left:1rem; right:1rem; bottom:.35rem;
  height:2px; background: var(--brand-orange);
  transform: scaleX(0); transform-origin:left;
  transition: transform .3s cubic-bezier(.22,1,.36,1);
  border-radius:2px;
}
.nav-link:hover::after, .nav-link.active::after{ transform: scaleX(1); }

.nav-cta{
  display:inline-flex; align-items:center; gap:.4rem;
  padding:.7rem 1.4rem; margin-left:.75rem;
  background: var(--brand-orange); color:#fff;
  font-size:.875rem; font-weight:600;
  text-decoration:none; border-radius:9999px;
  transition: all .25s;
  box-shadow: 0 6px 16px -6px rgba(238,65,12,.55);
}
.nav-cta:hover{ background: var(--brand-orange-600); transform: translateY(-1px); box-shadow: 0 10px 22px -6px rgba(238,65,12,.65); }

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  padding:.95rem 1.75rem;
  font-size:.95rem; font-weight:600;
  text-decoration:none; border:none; cursor:pointer;
  border-radius:9999px;
  transition: all .28s cubic-bezier(.22,1,.36,1);
}
.btn:active{ transform: scale(.985); }
.btn-primary{
  background: var(--brand-orange); color:#fff;
  box-shadow: 0 8px 22px -8px rgba(238,65,12,.55);
}
.btn-primary:hover{
  background: var(--brand-orange-600);
  transform: translateY(-2px);
  box-shadow: 0 14px 32px -8px rgba(238,65,12,.7);
}
.btn-dark{
  background: var(--gray-900); color:#fff;
}
.btn-dark:hover{ background:#000; transform: translateY(-2px); box-shadow: 0 12px 30px -8px rgba(0,0,0,.35); }
.btn-ghost-light{
  color:#fff; background: transparent;
  border:2px solid rgba(255,255,255,.7);
}
.btn-ghost-light:hover{ background:#fff; color: var(--gray-900); transform: translateY(-2px); }
.btn-outline-dark{
  color: var(--gray-900); background: transparent;
  border:2px solid var(--gray-900);
}
.btn-outline-dark:hover{ background: var(--gray-900); color:#fff; transform: translateY(-2px); }
.btn-block{ width:100%; }

.section-tag{
  display:inline-block; padding:.45rem 1rem;
  background: var(--brand-orange-50); color: var(--brand-orange);
  font-size:.7rem; font-weight:700; letter-spacing:.18em;
  text-transform:uppercase; border-radius:9999px;
  margin-bottom:1rem;
}
.section-tag-gray{
  background: var(--gray-100); color: var(--gray-700);
}
.section-tag-green{
  background: var(--brand-green-50); color: var(--brand-green-700);
}

.h-display-1{
  font-family:'Lora', Georgia, serif;
  font-size:2.25rem; line-height:1.08; letter-spacing:-.02em; font-weight:600;
  color: var(--gray-900);
}
.h-display-2{
  font-family:'Lora', Georgia, serif;
  font-size:1.75rem; line-height:1.15; letter-spacing:-.018em; font-weight:600;
  color: var(--gray-900);
}
@media(min-width:640px){
  .h-display-1{ font-size:2.75rem; }
  .h-display-2{ font-size:2.25rem; }
}
@media(min-width:1024px){
  .h-display-1{ font-size:3.25rem; }
  .h-display-2{ font-size:2.5rem; }
}

.lead{ font-size:1.125rem; color: var(--gray-600); line-height:1.65; }
.text-ink-900{ color: var(--gray-900); }

.hero{
  position:relative; overflow:clip;
  display:flex; align-items:center;
  padding: 4rem 0 4.5rem;
}
@media(min-width:1024px){
  .hero{ min-height: calc(100vh - 7.5rem); padding: 5rem 0 5rem; }
}

.hero-grid{
  display:grid; grid-template-columns: 1fr;
  gap: 2.5rem;
  align-items: center;
}
@media(min-width:1024px){
  .hero-grid{ grid-template-columns: 1fr 1fr; gap: 3rem; }
}
@media(min-width:1280px){
  .hero-grid{ gap: 4rem; }
}

.hero-grid h1{
  font-family:'Lora', Georgia, serif;
  font-size: clamp(2rem, 4.5vw, 3.5rem);
  line-height:1.06;
  font-weight:600; color:#fff;
  letter-spacing:-.02em;
  margin-bottom:1rem;
  text-shadow: 0 4px 20px rgba(0,0,0,.25);
}
.hero-grid .hero-sub{
  font-size: clamp(.95rem, 1.2vw, 1.0625rem);
  max-width: none;
}
.hero-grid .hero-bullets{ max-width: none; }
.hero-bg-img{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; object-position:center 35%;
  transform: scale(1.05);
  animation: slowZoom 24s ease-out forwards;
}
@keyframes slowZoom{ from{ transform:scale(1.05); } to{ transform:scale(1.12); } }
.hero-overlay{
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(0,0,0,.25) 0%, rgba(0,0,0,.55) 60%, rgba(0,0,0,.75) 100%);
}
.hero-overlay-2{
  position:absolute; inset:0;
  background: linear-gradient(90deg, rgba(17,24,39,.55) 0%, rgba(17,24,39,.10) 60%, rgba(17,24,39,0) 100%);
}
.hero h1{
  font-family:'Lora', Georgia, serif;
  font-size: clamp(2.25rem, 5.5vw, 4.5rem);
  line-height:1.05; font-weight:600; color:#fff;
  letter-spacing:-.02em;
  margin-bottom:1.25rem;
  text-shadow: 0 4px 20px rgba(0,0,0,.25);
}
.hero h1 .accent-light{ color:#fff; font-weight:400; font-style: italic; }
.hero-sub{
  color: rgba(255,255,255,.9);
  font-size: clamp(1rem, 1.5vw, 1.25rem);
  max-width: 40rem; line-height:1.6;
  margin-bottom: 2rem;
}
.hero-bullets{ list-style:none; margin-bottom:2rem; display:flex; flex-direction:column; gap:.75rem; max-width:28rem; }
.hero-bullets li{
  display:flex; align-items:center; gap:.75rem;
  color:#fff; font-size:1rem;
}
.hero-bullets .tick{
  display:grid; place-items:center;
  width:1.5rem; height:1.5rem;
  background: var(--brand-green); color:#fff;
  border-radius:9999px;
  flex-shrink:0;
  font-size:.7rem;
}
.hero-cta-row{ display:flex; flex-wrap:wrap; gap:.75rem; }

.hero-scroll{
  position:absolute; left:50%; bottom:1.5rem;
  transform: translateX(-50%);
  color:#fff; font-size:1.25rem;
  opacity:.6;
  animation: heroBounce 2.4s ease-in-out infinite;
  display:none;
}
@media(min-width:1024px){ .hero-scroll{ display:block; } }
@keyframes heroBounce{
  0%,100%{ transform: translate(-50%, 0); }
  50%{ transform: translate(-50%, 8px); }
}

.hero-form{
  background:#fff;
  padding: 1.5rem;
  border-radius: 1.25rem;
  box-shadow: 0 25px 60px -15px rgba(0,0,0,.45), 0 0 0 1px rgba(255,255,255,.05);
  max-width: 32rem;
  margin: 0 auto;
  width:100%;
}
@media(min-width:640px){ .hero-form{ padding: 1.75rem; } }
@media(min-width:1024px){ .hero-form{ margin-left:auto; margin-right:0; } }
.hero-form-head{ margin-bottom: 1.25rem; }
.hero-form-tag{
  display:inline-block;
  padding:.3rem .75rem;
  background: var(--brand-orange-50);
  color: var(--brand-orange);
  font-size:.65rem; font-weight:700;
  letter-spacing:.18em; text-transform:uppercase;
  border-radius:9999px;
  margin-bottom:.5rem;
}
.hero-form h3{
  font-family:'Lora', Georgia, serif;
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--gray-900);
  line-height: 1.15;
  margin-bottom:.25rem;
}
.hero-form-sub{
  color: var(--gray-500);
  font-size: .9rem;
}
.hero-form-note{
  margin-top: .75rem;
  text-align: center;
  font-size: .75rem;
  color: var(--gray-400);
}

.trust-bar{
  background: var(--cream);
  border-bottom:1px solid var(--cream-2);
  padding:1.25rem 0;
}
.trust-bar-inner{
  display:flex; flex-wrap:wrap; justify-content:center; align-items:center;
  gap: 1rem 2.5rem;
}
.trust-item-mini{
  display:inline-flex; align-items:center; gap:.65rem;
  color: var(--gray-700); font-weight:600; font-size:.9rem;
  white-space:nowrap;
}
.trust-item-mini i{ color: var(--brand-orange); font-size:1.15rem; }
@media(max-width:767px){
  .trust-bar{ padding:1rem 0; }
  .trust-bar-inner{
    flex-wrap:nowrap;
    overflow-x:auto;
    overflow-y:hidden;
    justify-content:flex-start;
    gap:1.75rem;
    padding:.25rem 1.25rem;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    -ms-overflow-style:none;
    scroll-snap-type: x proximity;
    mask-image: linear-gradient(90deg, transparent 0, #000 1.5rem, #000 calc(100% - 1.5rem), transparent 100%);
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 1.5rem, #000 calc(100% - 1.5rem), transparent 100%);
  }
  .trust-bar-inner::-webkit-scrollbar{ display:none; }
  .trust-item-mini{
    flex-shrink:0;
    scroll-snap-align:start;
    font-size:.85rem;
  }
}

.jour-strip{
  position:relative;
  padding:2rem 0;
  background:#fff;
  overflow:clip;
}
.jour-strip::before{
  content:'';
  position:absolute; left:0; top:0; bottom:0;
  width:6px; background: var(--brand-orange);
}
.jour-strip::after{
  content:'';
  position:absolute; right:-4rem; top:50%;
  width:20rem; height:20rem; transform:translateY(-50%);
  background: radial-gradient(circle, rgba(238,65,12,.06) 0%, transparent 70%);
  pointer-events:none;
}
.jour-inner{
  position:relative; z-index:1;
  display:flex; flex-direction:column; gap:1.5rem;
  align-items:flex-start; justify-content:space-between;
}
@media(min-width:768px){ .jour-inner{ flex-direction:row; align-items:center; } }
.jour-head{ display:flex; align-items:center; gap:1.25rem; }
.jour-icon{
  display:grid; place-items:center;
  width:3.5rem; height:3.5rem;
  background: linear-gradient(135deg, var(--brand-orange) 0%, var(--brand-orange-700) 100%);
  color:#fff;
  border-radius:.875rem; font-size:1.25rem;
  flex-shrink:0;
  box-shadow: 0 10px 24px -8px rgba(238,65,12,.5);
  animation: jourPulse 2.4s ease-in-out infinite;
}
@keyframes jourPulse{
  0%,100%{ transform: scale(1); }
  50%{ transform: scale(1.05); }
}
.jour-head h3{
  font-family:'Lora', Georgia, serif;
  font-size:1.25rem; font-weight:600;
  color: var(--gray-900);
  line-height:1.2;
}
.jour-head p{ color: var(--gray-600); font-size:.9rem; margin-top:.2rem; }

.jour-phone-card{
  display:inline-flex; align-items:center; gap:1rem;
  padding:1rem 1.5rem;
  background:#fff; border:2px solid var(--brand-orange);
  border-radius:9999px;
  text-decoration:none;
  transition: all .25s;
  box-shadow: 0 8px 22px -10px rgba(238,65,12,.4);
}
.jour-phone-card:hover{
  background: var(--brand-orange); transform: translateY(-2px);
  box-shadow: 0 14px 30px -10px rgba(238,65,12,.6);
}
.jour-phone-card .icn{
  display:grid; place-items:center;
  width:2.25rem; height:2.25rem;
  background: var(--brand-orange); color:#fff;
  border-radius:9999px; font-size:.875rem;
  transition: all .25s;
}
.jour-phone-card:hover .icn{ background:#fff; color: var(--brand-orange); }
.jour-phone-card .txt{ display:flex; flex-direction:column; line-height:1.15; text-align:left; }
.jour-phone-card .lbl{ font-size:.7rem; color: var(--gray-500); letter-spacing:.08em; text-transform:uppercase; font-weight:600; }
.jour-phone-card .num{ font-size:1.25rem; font-weight:700; color: var(--brand-orange); transition: color .25s; }
.jour-phone-card:hover .lbl, .jour-phone-card:hover .num{ color:#fff; }

.cert-band{
  padding: 3rem 0;
  background:#fff;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.cert-grid{
  display:grid; grid-template-columns: 1fr; gap: 1rem;
}
@media(min-width:768px){ .cert-grid{ grid-template-columns: repeat(3, 1fr); gap:1.5rem; } }
.cert-card{
  display:flex; align-items:center; gap:1.25rem;
  padding:1.25rem 1.5rem;
  background:#fff;
  border:1px solid var(--line);
  border-radius:1rem;
  transition: all .3s;
}
.cert-card:hover{
  transform: translateY(-3px);
  border-color: var(--brand-orange);
  box-shadow: var(--shadow-lg);
}
.cert-card .cert-logo{
  display:grid; place-items:center;
  width:4.5rem; height:4.5rem;
  background: var(--cream);
  border-radius:.875rem;
  flex-shrink:0;
}
.cert-card .cert-logo img{
  max-width:80%; max-height:80%; object-fit:contain;
}
.cert-card .cert-rut-big{
  font-family:'Lora', Georgia, serif;
  font-size:1.375rem; font-weight:700;
  color: var(--brand-orange);
  letter-spacing:-.01em;
}
.cert-card h4{
  font-family:'Lora', Georgia, serif;
  font-size:1.125rem; font-weight:600;
  color: var(--gray-900); margin-bottom:.2rem;
}
.cert-card p{ color: var(--gray-500); font-size:.875rem; }

.services-section{ padding: 5rem 0; background: var(--cream); }
@media(min-width:1024px){ .services-section{ padding: 6rem 0; } }

.svc-grid{ display:grid; grid-template-columns: 1fr; gap:1.25rem; }
@media(min-width:640px){ .svc-grid{ grid-template-columns: repeat(2, 1fr); gap:1.5rem; } }
@media(min-width:1024px){ .svc-grid{ grid-template-columns: repeat(4, 1fr); } }

.svc-card{
  background:#fff; border-radius:1rem; overflow:hidden;
  box-shadow: var(--shadow-md);
  border:1px solid var(--line);
  transition: all .35s cubic-bezier(.22,1,.36,1);
  display:flex; flex-direction:column;
}
.svc-card:hover{
  transform: translateY(-6px);
  box-shadow: var(--shadow-xl);
  border-color: var(--brand-orange);
}
.svc-media{
  position:relative; height:13rem; overflow:hidden;
}
.svc-media img{ width:100%; height:100%; object-fit:cover; transition: transform .6s; }
.svc-card:hover .svc-media img{ transform: scale(1.08); }
.svc-body{ padding:1.5rem; flex:1; display:flex; flex-direction:column; }
.svc-icon-chip{
  display:grid; place-items:center;
  width:3rem; height:3rem;
  background: var(--cream); color: var(--brand-orange);
  border-radius:.625rem;
  margin-bottom:1rem;
  transition: all .3s;
}
.svc-card:hover .svc-icon-chip{ background: var(--brand-orange); color:#fff; }
.svc-card h3{
  font-family:'Lora', Georgia, serif;
  font-size:1.25rem; font-weight:600; color: var(--gray-900);
  margin-bottom:.5rem;
}
.svc-card p{ color: var(--gray-600); font-size:.9375rem; line-height:1.55; flex:1; }
.svc-link{
  display:inline-flex; align-items:center; gap:.4rem;
  margin-top:1.25rem;
  color: var(--brand-orange); font-weight:600; font-size:.9rem;
  text-decoration:none;
  transition: gap .25s;
}
.svc-link:hover{ gap:.7rem; color: var(--brand-orange-600); }

.about-section{ padding: 5rem 0; background: var(--cream); }
@media(min-width:1024px){ .about-section{ padding: 6rem 0; } }

.about-image-grid{ display:grid; grid-template-columns: repeat(2, 1fr); gap:1rem; }
.about-image-grid .col-a, .about-image-grid .col-b{ display:flex; flex-direction:column; gap:1rem; }
.about-image-grid .col-b{ margin-top:2rem; }
.about-tile{
  border-radius:1rem; overflow:hidden;
  box-shadow: var(--shadow-md);
  transition: transform .4s;
}
.about-tile:hover{ transform: translateY(-4px); }
.about-tile img{ width:100%; display:block; object-fit:cover; transition: transform .6s; }
.about-tile:hover img{ transform: scale(1.05); }
.about-tile.tall img{ height:16rem; }
.about-tile.short img{ height:12rem; }

.stats-row{ display:grid; grid-template-columns: repeat(3,1fr); gap:1rem; }
.stat-block{ text-align:center; padding:1rem; }
.stat-num{
  display:block;
  font-family:'Lora', Georgia, serif;
  font-size:2.25rem; font-weight:700; line-height:1;
  color: var(--brand-orange);
}
.stat-label{
  display:block; margin-top:.4rem;
  font-size:.8125rem; color: var(--gray-600);
}

.check-row{ display:flex; flex-wrap:wrap; gap:1rem 1.5rem; }
.check-row .chip{
  display:inline-flex; align-items:center; gap:.5rem;
  color: var(--gray-700); font-weight:500;
}
.check-row .chip i{ color: var(--brand-green); }

.gallery-section{ padding: 5rem 0; background:#fff; }
@media(min-width:1024px){ .gallery-section{ padding: 6rem 0; } }

.gallery-grid{
  display:grid; grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}
@media(min-width:768px){ .gallery-grid{ gap: 1.25rem; } }
@media(max-width: 900px){ .gallery-grid{ grid-template-columns: repeat(2, 1fr); } }
@media(max-width: 500px){ .gallery-grid{ grid-template-columns: 1fr; } }

.g-item{
  position:relative; overflow:hidden;
  border-radius:1rem;
  box-shadow: var(--shadow-md);
  transition: transform .35s, box-shadow .35s;
  aspect-ratio: 4/3;
  cursor: zoom-in;
}
.g-item:hover{
  transform: translateY(-4px);
  box-shadow: var(--shadow-xl);
}
.g-item img{
  width:100%; height:100%; object-fit:cover;
  transition: transform .7s cubic-bezier(.22,1,.36,1);
}
.g-item:hover img{ transform: scale(1.08); }
.g-item::after{
  content:''; position:absolute; inset:0;
  background: linear-gradient(180deg, transparent 55%, rgba(17,24,39,.55) 100%);
  opacity:0; transition: opacity .3s;
}
.g-item:hover::after{ opacity:1; }
.g-item .g-caption{
  position:absolute; left:1rem; bottom:1rem; right:1rem;
  color:#fff; font-size:.875rem; font-weight:600;
  letter-spacing:.01em;
  text-shadow: 0 2px 8px rgba(0,0,0,.4);
  opacity:0; transform: translateY(8px);
  transition: all .35s;
  z-index:2;
}
.g-item:hover .g-caption{ opacity:1; transform: translateY(0); }

.why-section{
  background: var(--cream);
  padding: 5rem 0;
}
.why-grid{ display:grid; grid-template-columns: 1fr; gap:1.5rem; max-width:64rem; margin:0 auto; }
@media(min-width:768px){ .why-grid{ grid-template-columns: repeat(3,1fr); } }
.why-card{
  background:#fff; border-radius:1.25rem; padding:2rem;
  box-shadow: var(--shadow-lg);
  transition: transform .3s, box-shadow .3s;
}
.why-card:hover{ transform: translateY(-6px); box-shadow: var(--shadow-xl); }
.why-icon{
  display:grid; place-items:center;
  width:3.5rem; height:3.5rem;
  background: var(--brand-orange); color:#fff;
  border-radius:.875rem;
  font-size:1.375rem;
  margin-bottom:1.25rem;
}
.why-card.alt .why-icon{ background: var(--gray-900); }
.why-card.alt2 .why-icon{ background: var(--brand-green); }
.why-card h3{
  font-family:'Lora', Georgia, serif;
  font-size:1.25rem; font-weight:600; color: var(--gray-900);
  margin-bottom:.5rem;
}
.why-card p{ color: var(--gray-600); }

.mid-cta{ position:relative; padding: 5rem 0; overflow:clip; }
.mid-cta .bg{ position:absolute; inset:0; }
.mid-cta .bg img{ width:100%; height:100%; object-fit:cover; }
.mid-cta .bg::after{
  content:''; position:absolute; inset:0;
  background: linear-gradient(90deg, rgba(17,24,39,.9) 0%, rgba(17,24,39,.7) 100%);
}
.mid-cta-inner{ position:relative; z-index:2; text-align:center; color:#fff; max-width: 48rem; margin:0 auto; padding: 0 1.5rem; }
.mid-cta h2{
  font-family:'Lora', Georgia, serif;
  font-size: clamp(2rem, 4vw, 3rem); line-height:1.08; letter-spacing:-.02em;
  font-weight:600; margin-bottom:1rem;
}
.rut-big{
  display:inline-flex; flex-direction:column; gap:.3rem;
  align-items:center;
  padding:1.5rem 2rem; margin: 1.5rem 0 2rem;
  background: rgba(255,255,255,.1);
  backdrop-filter: blur(10px);
  border:1px solid rgba(255,255,255,.2);
  border-radius:1.25rem;
}
.rut-pill{
  display:inline-block; padding:.35rem 1rem;
  background: var(--brand-green); color:#fff;
  border-radius:9999px; font-size:.75rem; font-weight:700;
  letter-spacing:.12em;
}
.rut-big strong{ font-size:1.5rem; font-weight:700; }
.rut-big span.small{ opacity:.85; font-size:.95rem; }

.reviews-section{ padding: 5rem 0; background:#fff; }
@media(min-width:1024px){ .reviews-section{ padding: 6rem 0; } }

.instagram-section{
  position:relative;
  padding: 5rem 0;
  background: linear-gradient(135deg,#1e2818 0%, #2a3323 50%, #131a10 100%);
  color:#fff;
  overflow:hidden;
}
.instagram-section::before{
  content:""; position:absolute; inset:0;
  background-image: radial-gradient(circle at 15% 20%, rgba(238,65,12,.14), transparent 55%),
                    radial-gradient(circle at 85% 80%, rgba(193,53,132,.12), transparent 55%);
  pointer-events:none;
}
.instagram-section > *{ position:relative; z-index:1; }
.instagram-section .section-tag-gray{
  background: rgba(255,255,255,.08); color:#fff; border-color: rgba(255,255,255,.15);
}
.instagram-section .h-display-1{ color:#fff; }
.instagram-section .lead{ color: rgba(255,255,255,.78); }
@media(min-width:1024px){ .instagram-section{ padding: 6rem 0; } }
.insta-handle{
    display:inline-flex; align-items:center; gap:.5rem;
    margin-top:1rem; padding:.55rem 1.1rem;
    border-radius:999px;
    font-weight:600; font-size:.95rem;
    color:#fff;
    background: linear-gradient(135deg,#405de6 0%,#5851db 15%,#833ab4 30%,#c13584 50%,#e1306c 70%,#fd1d1d 85%,#f77737 100%);
    box-shadow: 0 6px 20px rgba(193,53,132,.25);
    transition: transform .2s ease, box-shadow .2s ease;
}
.insta-handle:hover{ transform: translateY(-2px); box-shadow: 0 10px 26px rgba(193,53,132,.35); }

.contact-section{ padding: 5rem 0; background: var(--cream); }
@media(min-width:1024px){ .contact-section{ padding: 6rem 0; } }

.contact-form{
  padding:1.75rem;
  background:#fff;
  border:1px solid var(--line);
  border-radius:1.25rem;
  box-shadow: var(--shadow-lg);
}
.contact-form h3{ font-family:'Lora', Georgia, serif; color: var(--gray-900); font-size:1.5rem; font-weight:600; margin-bottom:1.25rem; }
.form-label{
  display:block; font-size:.8125rem; font-weight:600;
  color: var(--gray-700); margin-bottom:.4rem;
}
.form-input{
  width:100%; padding:.8rem 1rem;
  background:#fff;
  border:1.5px solid var(--gray-200); border-radius:.625rem;
  font-family:'Geist', system-ui, sans-serif; font-size:.9375rem;
  color: var(--gray-800);
  transition: all .25s; outline:none;
  -webkit-appearance:none; appearance:none;
}
.form-input::placeholder{ color: var(--gray-400); }
.form-input:focus{
  border-color: var(--brand-orange);
  box-shadow: 0 0 0 3px rgba(238,65,12,.12);
}
select.form-input{ cursor:pointer; padding-right:2.5rem; }
textarea.form-input{ resize: vertical; min-height: 7rem; }

.btn-submit{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  background: var(--brand-orange); color:#fff;
  padding:1rem 2rem;
  font-family:'Geist', sans-serif; font-size:.95rem; font-weight:600;
  border:none; border-radius:9999px;
  cursor:pointer;
  transition: all .28s cubic-bezier(.22,1,.36,1);
  width:100%;
  box-shadow: 0 8px 20px -8px rgba(238,65,12,.5);
}
.btn-submit:hover{ background: var(--brand-orange-600); transform: translateY(-2px); box-shadow: 0 14px 30px -8px rgba(238,65,12,.65); }
.btn-submit:active{ transform: scale(.985); }

.contact-info-card{
  background:#fff; border-radius:1.25rem;
  padding:2rem; box-shadow: var(--shadow-lg);
}
.contact-info-card h3{ font-family:'Lora', Georgia, serif; color: var(--gray-900); font-size:1.25rem; font-weight:600; margin-bottom:1rem; }
.info-row{ display:flex; gap:1rem; padding: .75rem 0; }
.info-row + .info-row{ border-top:1px solid var(--line); }
.info-ico{
  display:grid; place-items:center;
  width:2.75rem; height:2.75rem;
  background: var(--brand-orange-50); color: var(--brand-orange);
  border-radius:.625rem; flex-shrink:0;
}
.info-row h4{ font-size:.8125rem; color: var(--gray-500); margin-bottom:.2rem; }
.info-row a, .info-row p, .info-row span{
  color: var(--gray-900); font-weight:600; font-size:.95rem;
  text-decoration:none;
}
.info-row a:hover{ color: var(--brand-orange); }

.rut-card{
  border-radius:1.25rem;
  padding:2rem;
  background: linear-gradient(135deg, var(--brand-green-50) 0%, #fff 70%);
  border:2px solid var(--brand-green);
}
.rut-card .rut-head{
  display:flex; align-items:center; gap:1rem; margin-bottom:1rem;
}
.rut-card .rut-head .ico{
  display:grid; place-items:center;
  width:3rem; height:3rem;
  background: var(--brand-green); color:#fff;
  border-radius:9999px; font-size:1.125rem;
  flex-shrink:0;
}
.rut-card h3{
  font-family:'Lora', Georgia, serif;
  font-size:1.375rem; font-weight:600;
  color: var(--gray-900);
}
.rut-card ul{ list-style:none; display:flex; flex-direction:column; gap:.5rem; margin-top:.75rem; }
.rut-card li{ display:flex; align-items:center; gap:.5rem; color: var(--gray-700); font-size:.95rem; }
.rut-card li i{ color: var(--brand-green); }

.footer{
  background:#fff;
  color: var(--gray-700);
  padding: 4rem 0 2rem;
  border-top:1px solid var(--line);
}
.footer-emerg{
  background: linear-gradient(135deg, var(--brand-orange) 0%, var(--brand-orange-700) 100%);
  color:#fff; border-radius:1.5rem;
  padding: 2rem;
  margin-bottom: 3rem;
  display:flex; flex-direction:column; gap:1.5rem;
  align-items:flex-start; justify-content:space-between;
  box-shadow: var(--shadow-xl);
}
@media(min-width:768px){ .footer-emerg{ flex-direction:row; align-items:center; padding:2.5rem; } }
.footer-emerg-icon{
  display:grid; place-items:center;
  width:3.25rem; height:3.25rem;
  background: rgba(255,255,255,.18);
  border-radius:1rem; font-size:1.375rem;
  flex-shrink:0;
}
.footer-emerg h3{
  font-family:'Lora', Georgia, serif;
  font-size:1.5rem; font-weight:600;
}
.footer-emerg .sub{ color: rgba(255,255,255,.9); font-size:.9rem; }
.footer-emerg-btn{
  display:inline-flex; align-items:center; gap:.5rem;
  padding:1rem 1.75rem;
  background:#fff; color: var(--brand-orange);
  border-radius:9999px; font-weight:700; text-decoration:none;
  box-shadow: 0 10px 24px -8px rgba(0,0,0,.35);
  transition: transform .25s, box-shadow .25s;
  white-space:nowrap;
}
.footer-emerg-btn:hover{ transform: translateY(-2px) scale(1.02); box-shadow: 0 14px 32px -8px rgba(0,0,0,.45); }

.footer-grid{
  display:grid; grid-template-columns: 1fr; gap:2.5rem;
  margin-bottom:2.5rem;
}
@media(min-width:768px){ .footer-grid{ grid-template-columns: repeat(2, 1fr); } }
@media(min-width:1024px){ .footer-grid{ grid-template-columns: 2fr 1fr 1fr; gap:3rem; } }
.footer-brand{ display:flex; align-items:center; gap:1rem; margin-bottom:1.25rem; text-decoration:none; }
.footer-brand img{ height:3rem; width:auto; }
.footer-brand-name{
  font-family:'Lora', Georgia, serif;
  font-size:1.5rem; font-weight:600; color: var(--gray-900);
  line-height:1;
}
.footer-brand-sub{
  display:block; margin-top:.2rem;
  font-size:.75rem; color: var(--gray-500);
  letter-spacing:.06em; text-transform:uppercase;
}
.footer-desc{ color: var(--gray-600); font-size:.95rem; line-height:1.65; margin-bottom:1.5rem; max-width:30rem; }
.footer-certs{ display:flex; flex-wrap:wrap; gap:.5rem; }
.footer-cert{
  display:inline-flex; align-items:center; gap:.4rem;
  padding:.45rem .875rem;
  background: var(--brand-green-50); color: var(--brand-green-700);
  border:1px solid rgba(0,202,61,.35);
  border-radius:.5rem; font-size:.75rem; font-weight:600;
}
.footer-cert i{ color: var(--brand-green); }
.footer-head{
  font-family:'Lora', Georgia, serif;
  font-size:1.125rem; font-weight:600; color: var(--gray-900);
  margin-bottom:1.25rem;
}
.footer-links{ list-style:none; display:flex; flex-direction:column; gap:.6rem; }
.footer-link{
  color: var(--gray-600); text-decoration:none;
  font-size:.9375rem;
  transition: color .2s, padding-left .2s;
  display:inline-flex; align-items:center; gap:.5rem;
}
.footer-link:hover{ color: var(--brand-orange); padding-left:.25rem; }
.footer-link i{ color: var(--brand-orange); font-size:.7rem; }

.footer-contact-tile{
  background: var(--cream);
  border:1px solid var(--cream-2);
  border-radius:.75rem; padding:1rem 1.25rem;
  margin-bottom:.75rem;
}
.footer-contact-tile .lbl{
  display:flex; align-items:center; gap:.5rem;
  font-size:.8125rem; color: var(--gray-500);
  margin-bottom:.35rem;
  font-weight:500;
}
.footer-contact-tile .lbl i{ color: var(--brand-orange); }
.footer-contact-tile a, .footer-contact-tile p, .footer-contact-tile span{
  color: var(--gray-900); font-weight:600; text-decoration:none; font-size:.95rem;
}
.footer-contact-tile a:hover{ color: var(--brand-orange); }

.footer-copy{
  border-top:1px solid var(--line);
  padding-top:1.5rem;
  display:flex; flex-direction:column; gap:1rem;
  justify-content:space-between; align-items:center;
  color: var(--gray-500); font-size:.8125rem;
  text-align:center;
}
@media(min-width:768px){ .footer-copy{ flex-direction:row; text-align:left; } }
.social-row{ display:flex; gap:.5rem; }
.social-icon{
  display:grid; place-items:center;
  width:2.25rem; height:2.25rem;
  background: var(--cream);
  color: var(--gray-700);
  border-radius:.5rem;
  transition: all .2s;
  text-decoration:none;
}
.social-icon:hover{ background: var(--brand-orange); color:#fff; transform: translateY(-2px); }

.menu-bar{
  display:block; height:2px; width:1.5rem; background: var(--gray-900);
  border-radius:9999px; transition: all .3s;
}
.menu-open .menu-bar:nth-child(1){ transform: translateY(6px) rotate(45deg); }
.menu-open .menu-bar:nth-child(2){ opacity:0; }
.menu-open .menu-bar:nth-child(3){ transform: translateY(-6px) rotate(-45deg); }

#mobile-menu{
  position:absolute;
  top:100%; left:0; right:0;
  background:#fff;
  border-bottom:1px solid var(--line);
  box-shadow: 0 20px 40px -12px rgba(0,0,0,.15);
  transform: scaleY(0);
  transform-origin: top center;
  opacity:0;
  pointer-events:none;
  transition: transform .35s cubic-bezier(.22,1,.36,1), opacity .25s;
  z-index:40;
  overflow:hidden;
}
#mobile-menu.active{
  transform: scaleY(1);
  opacity:1;
  pointer-events:auto;
}
.mobile-menu-inner{
  max-width: var(--container);
  margin:0 auto;
  padding: 1rem 1.5rem 1.5rem;
  display:flex; flex-direction:column; gap:.25rem;
  max-height: calc(100vh - 7.5rem);
  overflow-y:auto;
}
.mobile-link{
  color: var(--gray-900);
  font-family:'Lora', Georgia, serif;
  font-size:1.125rem;
  text-decoration:none;
  padding: .85rem 1rem;
  border-radius: .625rem;
  border-bottom: 1px solid var(--gray-100);
  transition: background .2s, color .2s, padding-left .2s;
  display:flex; align-items:center; justify-content:space-between;
  opacity:0; transform: translateY(-6px);
}
.mobile-link::after{
  content:'\f054';
  font-family:'Font Awesome 6 Free';
  font-weight:900;
  font-size:.7rem;
  color: var(--gray-400);
  transition: transform .2s, color .2s;
}
.mobile-link:hover{
  background: var(--cream);
  color: var(--brand-orange);
  padding-left: 1.25rem;
}
.mobile-link:hover::after{ color: var(--brand-orange); transform: translateX(3px); }
#mobile-menu.active .mobile-link{
  opacity:1; transform: translateY(0);
  transition: opacity .35s ease, transform .35s ease, background .2s, color .2s, padding-left .2s;
}
#mobile-menu.active .mobile-link:nth-child(1){ transition-delay: .10s, .10s, 0s, 0s, 0s; }
#mobile-menu.active .mobile-link:nth-child(2){ transition-delay: .14s, .14s, 0s, 0s, 0s; }
#mobile-menu.active .mobile-link:nth-child(3){ transition-delay: .18s, .18s, 0s, 0s, 0s; }
#mobile-menu.active .mobile-link:nth-child(4){ transition-delay: .22s, .22s, 0s, 0s, 0s; }
#mobile-menu.active .mobile-link:nth-child(5){ transition-delay: .26s, .26s, 0s, 0s, 0s; }
#mobile-menu.active .mobile-link:nth-child(6){ transition-delay: .30s, .30s, 0s, 0s, 0s; }
.mobile-link-cta{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  padding:.95rem 1.5rem; margin-top:.75rem;
  background: var(--brand-orange); color:#fff;
  border-radius:9999px;
  font-family:'Geist', sans-serif; font-size:.95rem; font-weight:600;
  text-decoration:none;
  box-shadow: 0 8px 20px -6px rgba(238,65,12,.55);
  transition: background .2s, transform .2s, opacity .35s, transform .35s;
  opacity:0; transform: translateY(-6px);
}
.mobile-link-cta:hover{ background: var(--brand-orange-600); }
#mobile-menu.active .mobile-link-cta{
  opacity:1; transform: translateY(0);
  transition-delay: .34s;
}

.lightbox{
  position:fixed; inset:0; z-index:100;
  background: rgba(10, 15, 23, 0.96);
  display:none;
  align-items:center; justify-content:center;
  padding: 3rem 1rem;
  opacity:0;
  transition: opacity .3s;
}
.lightbox.active{
  display:flex;
  opacity:1;
  animation: lightboxFadeIn .3s ease forwards;
}
@keyframes lightboxFadeIn{
  from{ opacity:0; }
  to{ opacity:1; }
}
.lightbox-figure{
  display:flex; flex-direction:column;
  align-items:center; gap:1rem;
  max-width:100%; max-height:100%;
  margin:0;
}
.lightbox-img{
  max-width: min(1400px, 92vw);
  max-height: 80vh;
  object-fit:contain;
  border-radius:.5rem;
  box-shadow: 0 30px 80px -20px rgba(0,0,0,.6);
  animation: lightboxZoomIn .35s cubic-bezier(.22,1,.36,1);
}
@keyframes lightboxZoomIn{
  from{ transform: scale(.95); opacity:0; }
  to{ transform: scale(1); opacity:1; }
}
.lightbox-cap{
  color: rgba(255,255,255,.85);
  font-size:.95rem;
  text-align:center;
  max-width: min(1400px, 92vw);
  font-family:'Lora', Georgia, serif;
  font-style: italic;
}
.lightbox-close,
.lightbox-prev,
.lightbox-next{
  position:absolute;
  background: rgba(255,255,255,.12);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border:1px solid rgba(255,255,255,.2);
  color:#fff;
  border-radius:9999px;
  width:3rem; height:3rem;
  display:grid; place-items:center;
  font-size:1rem;
  cursor:pointer;
  transition: background .2s, transform .2s, border-color .2s;
}
.lightbox-close:hover,
.lightbox-prev:hover,
.lightbox-next:hover{
  background: rgba(255,255,255,.22);
  border-color: rgba(255,255,255,.4);
}
.lightbox-close{ top:1.25rem; right:1.25rem; }
.lightbox-close:hover{ transform: scale(1.08) rotate(90deg); }
.lightbox-prev{ left:1rem; top:50%; transform: translateY(-50%); }
.lightbox-next{ right:1rem; top:50%; transform: translateY(-50%); }
.lightbox-prev:hover{ transform: translateY(-50%) translateX(-3px); }
.lightbox-next:hover{ transform: translateY(-50%) translateX(3px); }
.lightbox-count{
  position:absolute; bottom:1.25rem; left:50%;
  transform: translateX(-50%);
  color: rgba(255,255,255,.6);
  font-size:.8125rem; font-weight:500;
  letter-spacing:.08em;
  padding:.4rem .9rem;
  background: rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.15);
  border-radius:9999px;
}
@media(min-width:768px){
  .lightbox-close{ top:1.5rem; right:1.5rem; width:3.25rem; height:3.25rem; }
  .lightbox-prev{ left:1.5rem; width:3.25rem; height:3.25rem; }
  .lightbox-next{ right:1.5rem; width:3.25rem; height:3.25rem; }
}

.g-item{
  font: inherit;
  border: 0;
  background: none;
  padding: 0;
  margin: 0;
  text-align: inherit;
  color: inherit;
}

.reveal-up{
  opacity:0; transform:translateY(28px);
  transition: opacity .75s cubic-bezier(.22,1,.36,1), transform .75s cubic-bezier(.22,1,.36,1);
}
.reveal-up.visible{ opacity:1; transform:translateY(0); }
.delay-1{ transition-delay:.10s; }
.delay-2{ transition-delay:.22s; }
.delay-3{ transition-delay:.34s; }
.delay-4{ transition-delay:.46s; }
@media (prefers-reduced-motion: reduce){
  .reveal-up{ opacity:1; transform:none; transition:none; }
  .hero-bg-img{ animation:none; transform:scale(1.05); }
  .jour-icon{ animation:none; }
}
html.no-js .reveal-up{ opacity:1; transform:none; }

a:focus-visible, button:focus-visible,
input:focus-visible, textarea:focus-visible, select:focus-visible{
  outline: 2px solid var(--brand-orange); outline-offset: 2px;
}

#contact-form{ max-width:100%; overflow:hidden; }
#contact-form .g-recaptcha{ transform-origin: left center; max-width:100%; }
@media(max-width:640px){
  .grid > div{ min-width:0; max-width:100%; }
}
@media(max-width:400px){ #contact-form .g-recaptcha{ transform: scale(.85); } }
@media(max-width:340px){ #contact-form .g-recaptcha{ transform: scale(.75); } }

.sub-hero{
  position:relative;
  padding: 6.5rem 0 3rem;
  color:#fff;
  overflow:hidden;
  isolation:isolate;
}
@media(min-width:1024px){ .sub-hero{ padding: 7.5rem 0 4rem; min-height: 78vh; display:flex; align-items:center; } }
.sub-hero--compact{ padding: 5.5rem 0 2.25rem; }
@media(min-width:1024px){ .sub-hero--compact{ padding: 6rem 0 3rem; min-height: 52vh; } }
.sub-hero--compact h1{ font-size: clamp(1.85rem, 3.6vw, 2.6rem); margin:.5rem 0 .85rem; }
.sub-hero--compact p.sub{ font-size: clamp(.95rem, 1.2vw, 1.05rem); margin-bottom: 1.1rem; }
.sub-hero-bg--top img{ object-position: center 15%; }
.sub-hero-bg{
  position:absolute; inset:0; z-index:-2;
}
.sub-hero-bg img{
  width:100%; height:100%; object-fit:cover; object-position: center;
  animation: subHeroKen 16s ease-in-out infinite alternate;
}
@keyframes subHeroKen{
  from{ transform: scale(1); }
  to{ transform: scale(1.06); }
}
.sub-hero-overlay{
  position:absolute; inset:0; z-index:-1;
  background: linear-gradient(110deg, rgba(15,20,12,.88) 0%, rgba(20,28,16,.72) 45%, rgba(15,20,12,.55) 100%);
}
.sub-hero-overlay::after{
  content:""; position:absolute; inset:0;
  background: radial-gradient(circle at 85% 30%, rgba(238,65,12,.18), transparent 55%);
}
.sub-hero-grid{
  display:grid; grid-template-columns: 1fr; gap: 2.25rem; align-items:center; width:100%;
}
@media(min-width:1024px){ .sub-hero-grid{ grid-template-columns: 1.15fr .85fr; gap: 3rem; } }
.sub-hero-inner{ max-width: 36rem; }
.sub-hero h1{
  font-family: 'Lora', Georgia, serif;
  font-size: clamp(2rem, 4.2vw, 3.1rem);
  line-height:1.08; letter-spacing:-.02em;
  margin: .65rem 0 1rem;
}
.sub-hero h1 .accent{ color:#fff; font-style: italic; font-weight:400; opacity:.92; }
.sub-hero p.sub{
  font-size: clamp(.98rem, 1.3vw, 1.1rem);
  color: rgba(255,255,255,.85);
  max-width: 34rem; line-height:1.6;
  margin-bottom: 1.5rem;
}
.sub-hero .hero-cta-row{ margin-top:.75rem; }

.sub-hero-card{
  background: rgba(255,255,255,.07);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 1.15rem;
  padding: 1.5rem 1.5rem 1.25rem;
  box-shadow: 0 20px 60px rgba(0,0,0,.35);
}
.sub-hero-card .card-tag{
  display:inline-flex; align-items:center; gap:.5rem;
  padding:.35rem .8rem; border-radius:999px;
  background: rgba(238,65,12,.15); color:#ffb79c;
  font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; font-weight:600;
  margin-bottom:.85rem;
}
.sub-hero-card h3{
  font-family:'Lora', serif; font-size:1.35rem; font-weight:600;
  color:#fff; margin-bottom: 1rem;
}
.sub-hero-card ul{ list-style:none; padding:0; margin:0; display:grid; gap:.65rem; }
.sub-hero-card ul li{
  display:flex; align-items:flex-start; gap:.7rem;
  color: rgba(255,255,255,.9); font-size:.95rem; line-height:1.45;
}
.sub-hero-card ul li i{
  flex-shrink:0; margin-top:.15rem;
  width: 1.15rem; height: 1.15rem;
  background: var(--brand-green, #00ca3d);
  color:#fff;
  border-radius: 999px;
  display:inline-flex; align-items:center; justify-content:center;
  font-size: .62rem;
  box-shadow: 0 0 0 2px rgba(0,202,61,.15);
}
.sub-hero-card .card-foot{
  margin-top:1.15rem; padding-top:1rem;
  border-top:1px solid rgba(255,255,255,.12);
  display:flex; align-items:center; gap:.75rem;
}
.sub-hero-card .card-foot .ico{
  width:2.4rem; height:2.4rem; border-radius:999px;
  background: rgba(238,65,12,.2); color:#ffb79c;
  display:inline-flex; align-items:center; justify-content:center;
  flex-shrink:0;
}
.sub-hero-card .card-foot .txt{ display:flex; flex-direction:column; line-height:1.3; }
.sub-hero-card .card-foot .lbl{ font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color: rgba(255,255,255,.6); }
.sub-hero-card .card-foot .num{ color:#fff; font-weight:600; font-size:1.05rem; }

.breadcrumb{
  display:flex; flex-wrap:wrap; align-items:center; gap:.5rem;
  font-size:.85rem; letter-spacing:.04em;
  color: rgba(255,255,255,.7); text-transform:uppercase;
}
.breadcrumb a{ color: rgba(255,255,255,.85); text-decoration:none; transition: color .15s; }
.breadcrumb a:hover{ color: var(--brand-orange, #ee410c); }
.breadcrumb .sep{ opacity:.4; }
.breadcrumb .current{ color:#fff; }

.content-section{ padding: 3.5rem 0; background:#fff; }
@media(min-width:1024px){ .content-section{ padding: 4.5rem 0; } }
.content-section.alt{ background: var(--cream, #f0f2e6); }

.split-prose{
  display:grid; grid-template-columns: 1fr; gap: 2.5rem;
  max-width: 72rem; margin: 0 auto;
}
@media(min-width:1024px){ .split-prose{ grid-template-columns: 1fr 1fr; gap: 3.5rem; } }
.split-prose-col h2{
  font-family:'Lora', Georgia, serif;
  font-size: clamp(1.4rem, 2.2vw, 1.7rem);
  letter-spacing:-.01em; color:#1e2818;
  margin: .6rem 0 .75rem;
}
.split-prose-col p{
  color:#3f4a36; line-height:1.6; font-size:1rem; margin-bottom:.8rem;
}
.split-prose-col h3{
  font-size: 1rem; font-weight:600; color:#1e2818;
  margin: .85rem 0 .35rem;
}
.split-prose-col ul{ list-style:none; padding:0; margin:.25rem 0 0; display:flex; flex-direction:column; }
.split-prose-col ul li{
  position:relative; padding: .15rem 0 .15rem 1.25rem;
  color:#3f4a36; font-size:.95rem; line-height:1.4;
}
.split-prose-col ul li::before{
  content:""; position:absolute; left:.1rem; top:.55rem;
  width:.35rem; height:.35rem; border-radius:999px;
  background: var(--brand-orange, #ee410c);
}

.prose-block{ max-width: 52rem; margin: 0 auto; }
.prose-block p{ font-size: 1.03rem; line-height:1.65; color:#3f4a36; margin-bottom:.9rem; }
.prose-block p strong{ color:#1e2818; }
.prose-block h2{
  font-family:'Lora', Georgia, serif;
  font-size: clamp(1.65rem, 2.8vw, 2.1rem);
  letter-spacing:-.01em; color:#1e2818;
  margin: 1.25rem 0 .75rem;
}
.prose-block h3{
  font-size: 1.15rem; font-weight:600; color:#1e2818;
  margin: 1rem 0 .4rem;
}
.prose-block ul{ list-style:none; padding:0; margin:.25rem 0 1rem; display:flex; flex-direction:column; }
.prose-block ul li{
  position:relative; padding: .15rem 0 .15rem 1.25rem;
  color:#3f4a36; font-size:.98rem; line-height:1.45;
}
.prose-block ul li::before{
  content:""; position:absolute; left:.1rem; top:.65rem;
  width:.4rem; height:.4rem; border-radius:999px;
  background: var(--brand-orange, #ee410c);
}

.process-grid{
  display:grid; grid-template-columns:1fr; gap:1.25rem; margin-top:2rem;
}
@media(min-width:768px){ .process-grid{ grid-template-columns: repeat(3, 1fr); } }
.process-card{
  position:relative;
  background:#fff; border:1px solid rgba(30,40,24,.08);
  border-radius:1rem; padding:1.75rem 1.5rem 1.5rem;
  box-shadow: 0 2px 10px rgba(0,0,0,.03);
}
.process-card .num{
  display:inline-flex; align-items:center; justify-content:center;
  width:2.5rem; height:2.5rem; border-radius:999px;
  font-family:'Lora', serif; font-weight:600;
  background: rgba(238,65,12,.1); color: var(--brand-orange, #ee410c);
  margin-bottom:1rem;
}
.process-card h3{ font-size:1.15rem; font-weight:600; color:#1e2818; margin-bottom:.5rem; }
.process-card p{ color:#4a5642; line-height:1.6; font-size:.95rem; }

.faq-section{ padding: 3.5rem 0; background:#fff; }
@media(min-width:1024px){ .faq-section{ padding: 4.5rem 0; } }
.faq-section.alt{ background: var(--cream, #f0f2e6); }
.map-wrap{ margin-top: 1rem; }
.faq-list{ max-width: 50rem; margin: 2rem auto 0; display:grid; gap:.75rem; }
.faq-item{
  background:#fff; border:1px solid rgba(30,40,24,.1); border-radius:.85rem;
  padding: 0; overflow:hidden;
  transition: border-color .2s, box-shadow .2s;
}
.faq-item[open]{ border-color: rgba(238,65,12,.35); box-shadow: 0 4px 18px rgba(0,0,0,.04); }
.faq-item summary{
  list-style:none; cursor:pointer;
  padding: 1.15rem 1.35rem;
  font-weight:600; color:#1e2818; font-size:1.02rem;
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
}
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary::after{
  content:"+"; font-size:1.5rem; font-weight:400; color: var(--brand-orange, #ee410c);
  transition: transform .25s; line-height:1;
}
.faq-item[open] summary::after{ transform: rotate(45deg); }
.faq-item .answer{ padding: 0 1.35rem 1.2rem; color:#4a5642; line-height:1.65; font-size:.98rem; }
.faq-item .answer p{ margin-bottom:.7rem; }
.faq-item .answer p:last-child{ margin-bottom:0; }

.locality-band{
  padding: 3.5rem 0;
  background: linear-gradient(135deg,#2a3323, #1e2818);
  color:#fff;
}
.locality-band .inner{
  display:grid; grid-template-columns:1fr; gap:1.25rem; align-items:center;
  max-width: 56rem; margin:0 auto; text-align:center;
}
.locality-band h2{ font-family:'Lora', serif; font-size: clamp(1.5rem, 2.6vw, 2rem); }
.locality-band p{ color: rgba(255,255,255,.78); line-height:1.65; }
.locality-band .chip-row{ display:flex; flex-wrap:wrap; gap:.5rem; justify-content:center; margin-top:.75rem; }
.locality-band .chip-row span{
  background: rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.12);
  padding:.4rem .85rem; border-radius:999px; font-size:.85rem;
}

.cross-links{
  display:grid; grid-template-columns:1fr; gap:1rem; margin-top:2rem;
}
@media(min-width:768px){ .cross-links{ grid-template-columns: repeat(3,1fr); } }
.cross-link{
  display:block;
  background:#fff; border:1px solid rgba(30,40,24,.1); border-radius:1rem;
  padding:1.35rem 1.4rem;
  transition: transform .2s, box-shadow .2s, border-color .2s;
  text-decoration:none;
}
.cross-link:hover{ transform: translateY(-3px); border-color: rgba(238,65,12,.35); box-shadow: 0 10px 24px rgba(0,0,0,.05); }
.cross-link .kicker{ color: var(--brand-orange, #ee410c); font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; font-weight:600; }
.cross-link h4{ color:#1e2818; font-weight:600; font-size:1.1rem; margin:.35rem 0 .4rem; }
.cross-link p{ color:#4a5642; font-size:.92rem; line-height:1.5; }
.cross-link .arrow{ color: var(--brand-orange, #ee410c); font-size:.85rem; margin-top:.6rem; display:inline-block; }
