/* ============================================
   Mayiwa Vodehu — Design System
   ============================================ */
:root{
  --c-bg:#f7f5f0;
  --c-surface:#fffdf9;
  --c-surface-alt:#eef1e9;
  --c-primary:#1f4d3a;
  --c-primary-dark:#143728;
  --c-primary-light:#3c6b52;
  --c-secondary:#212d27;
  --c-accent:#c1712f;
  --c-accent-light:#e2a066;
  --c-sage:#9db98a;
  --c-text:#1b2420;
  --c-text-muted:#586158;
  --c-border:#ddd8ca;

  --radius-sm:6px;
  --radius-md:12px;
  --radius-lg:20px;
  --radius-xl:32px;

  --shadow-sm:0 1px 2px rgba(20,30,25,.06), 0 1px 1px rgba(20,30,25,.05);
  --shadow-md:0 4px 14px rgba(20,30,25,.09), 0 2px 5px rgba(20,30,25,.06);
  --shadow-lg:0 14px 36px rgba(20,30,25,.13), 0 4px 12px rgba(20,30,25,.08);
  --shadow-xl:0 26px 64px rgba(20,30,25,.16), 0 8px 24px rgba(20,30,25,.10);

  --space-section: clamp(3.25rem, 6vw, 6.5rem);
  --nav-h-mobile: 78px;
  --nav-h-desktop: 130px;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:'Source Sans 3', sans-serif;
  font-size:clamp(1rem, .96rem + .2vw, 1.0625rem);
  line-height:1.65;
  color:var(--c-text);
  background-color:var(--c-bg);
  background-image:radial-gradient(circle, rgba(31,77,58,.16) 1px, transparent 1.6px);
  background-size:24px 24px;
  padding-top:var(--nav-h-mobile);
  -webkit-font-smoothing:antialiased;
}
@media(min-width:960px){
  body{padding-top:var(--nav-h-desktop);}
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3,h4{font-family:'Montserrat',sans-serif;color:var(--c-primary-dark);margin:0;}
p{margin:0 0 1rem;color:var(--c-text-muted);}
p:last-child{margin-bottom:0;}
ul{margin:0;padding:0;list-style:none;}
button{font-family:inherit;cursor:pointer;}
input,textarea,select{font-family:inherit;font-size:1rem;}

.mod-section-title{font-size:clamp(1.5rem, 1.1rem + 1.6vw, 2.35rem);font-weight:700;line-height:1.2;letter-spacing:-.01em;}
.mod-section-subtitle{max-width:640px;margin-top:.6rem;color:var(--c-text-muted);}


.mod-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.85rem 1.6rem;border-radius:var(--radius-md);
  font-weight:600;font-size:.98rem;border:2px solid transparent;
  transition:transform .25s ease, box-shadow .25s ease, background-color .25s ease, color .25s ease, border-color .25s ease;
  min-height:48px;
}
.mod-btn-primary{background:var(--c-primary);color:#fdfcf9;box-shadow:var(--shadow-md);}
.mod-btn-primary:hover{background:var(--c-primary-dark);transform:translateY(-2px);box-shadow:var(--shadow-lg);}
.mod-btn-primary:active{transform:translateY(0);box-shadow:var(--shadow-sm);}
.mod-btn-outline{background:transparent;border-color:var(--c-primary);color:var(--c-primary);}
.mod-btn-outline:hover{background:var(--c-primary);color:#fdfcf9;transform:translateY(-2px);}
.mod-btn-large{padding:1.05rem 2.1rem;font-size:1.05rem;}


.mod-nav{position:fixed;top:0;left:0;right:0;z-index:1000;background:#fbfaf6;box-shadow:var(--shadow-sm);transition:box-shadow .3s ease;}
.mod-nav.is-scrolled{box-shadow:var(--shadow-md);}
.mod-nav-inner{max-width:1240px;margin:0 auto;padding:.85rem 1.5rem;display:flex;flex-direction:column;align-items:center;gap:.5rem;position:relative;}
.mod-nav-logo{display:flex;align-items:center;gap:.6rem;}
.mod-nav-logo-text{font-family:'Montserrat',sans-serif;font-weight:700;font-size:1.15rem;color:var(--c-primary-dark);letter-spacing:-.01em;}
.mod-nav-links{display:none;gap:clamp(1.2rem,2vw,2.4rem);}
.mod-nav-link{font-weight:600;font-size:.92rem;color:var(--c-text-muted);padding:.3rem .2rem;position:relative;transition:color .25s ease;}
.mod-nav-link::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:2px;background:var(--c-accent);transform:scaleX(0);transition:transform .25s ease;transform-origin:left;}
.mod-nav-link:hover{color:var(--c-primary);}
.mod-nav-link:hover::after{transform:scaleX(1);}
.mod-nav-link-active{color:var(--c-primary);}
.mod-nav-link-active::after{transform:scaleX(1);}
@media(min-width:960px){
  .mod-nav-links{display:flex;}
  .mod-nav-toggle{display:none;}
}

.mod-nav-toggle{position:absolute;right:1.4rem;top:50%;transform:translateY(-50%);width:44px;height:44px;background:none;border:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border-radius:var(--radius-sm);transition:background-color .2s ease;}
.mod-nav-toggle:hover{background:var(--c-surface-alt);}
.mod-nav-toggle span{width:22px;height:2px;background:var(--c-primary-dark);border-radius:2px;transition:transform .25s ease;}

.mod-nav-mobile-overlay{position:fixed;inset:0;background:rgba(15,20,17,.55);opacity:0;pointer-events:none;transition:opacity .35s ease;z-index:1400;}
.mod-nav-mobile-overlay.is-open{opacity:1;pointer-events:auto;}
.mod-nav-mobile-panel{
  position:fixed;top:0;right:0;height:100vh;width:min(360px,86vw);
  background:var(--c-surface);z-index:1500;
  transform:translateX(100%);transition:transform .4s cubic-bezier(.4,0,.2,1);
  box-shadow:var(--shadow-xl);
  padding:2rem 1.75rem;display:flex;flex-direction:column;
}
.mod-nav-mobile-panel.is-open{transform:translateX(0);}
.mod-nav-mobile-close{align-self:flex-end;width:44px;height:44px;border:none;background:var(--c-surface-alt);border-radius:50%;font-size:1.4rem;color:var(--c-primary-dark);transition:background-color .2s ease, transform .2s ease;}
.mod-nav-mobile-close:hover{background:var(--c-accent-light);transform:rotate(90deg);}
.mod-nav-mobile-links{display:flex;flex-direction:column;gap:1.6rem;margin-top:2.5rem;}
.mod-nav-mobile-link{font-family:'Montserrat',sans-serif;font-size:1.4rem;font-weight:600;color:var(--c-primary-dark);transition:color .2s ease, padding-left .2s ease;}
.mod-nav-mobile-link:hover{color:var(--c-accent);padding-left:.4rem;}
.mod-nav-mobile-contact{margin-top:auto;padding-top:2rem;border-top:1px solid var(--c-border);display:flex;flex-direction:column;gap:.6rem;color:var(--c-text-muted);}
body.mod-no-scroll{overflow:hidden;}


.mod-hero{position:relative;padding:calc(var(--nav-h-mobile) + 2.5rem) 1.5rem 3.5rem;overflow:hidden;}
@media(min-width:960px){.mod-hero{padding:calc(var(--nav-h-desktop) + 2rem) 2rem 5rem;}}
.mod-hero-inner{max-width:760px;margin:0 auto;text-align:center;position:relative;z-index:2;}
.mod-hero-eyebrow{display:inline-block;font-weight:600;font-size:.85rem;letter-spacing:.06em;text-transform:uppercase;color:var(--c-accent);background:rgba(193,113,47,.12);padding:.4rem .9rem;border-radius:999px;margin-bottom:1.2rem;}
.mod-hero-title{font-size:clamp(2.1rem, 1.5rem + 3.2vw, 3.6rem);font-weight:800;margin-bottom:1.1rem;}
.mod-hero-subtitle{font-size:clamp(1.02rem, .96rem + .3vw, 1.2rem);max-width:640px;margin:0 auto 2rem;}
.mod-hero-cta{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;margin-bottom:2rem;}
.mod-hero-meta{display:flex;flex-wrap:wrap;justify-content:center;gap:1.4rem;font-size:.92rem;color:var(--c-text-muted);font-weight:600;}
.mod-hero-meta i{color:var(--c-primary);margin-right:.4rem;}
.mod-hero-visual{max-width:920px;margin:2.5rem auto 0;border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-xl);position:relative;z-index:2;}
.mod-hero-visual img{width:100%;height:clamp(220px,42vw,440px);object-fit:cover;}
.mod-hero-shape{position:absolute;border-radius:50%;filter:blur(2px);z-index:1;opacity:.5;}
.mod-hero-shape-1{width:280px;height:280px;background:radial-gradient(circle, rgba(31,77,58,.28), transparent 70%);top:-60px;left:-80px;}
.mod-hero-shape-2{width:320px;height:320px;background:radial-gradient(circle, rgba(193,113,47,.22), transparent 70%);bottom:-100px;right:-90px;}


.mod-page-header{position:relative;padding:calc(var(--nav-h-mobile) + 2rem) 1.5rem 2.5rem;}
@media(min-width:960px){.mod-page-header{padding:calc(var(--nav-h-desktop) + 1.5rem) 2rem 3.5rem;}}
.mod-page-header-inner{max-width:800px;margin:0 auto;text-align:center;}
.mod-page-title{font-size:clamp(2rem, 1.5rem + 2.4vw, 3.1rem);font-weight:800;margin:.6rem 0 1rem;}
.mod-page-lead{font-size:clamp(1.02rem, .98rem + .2vw, 1.15rem);max-width:640px;margin:0 auto;}


.mod-about{padding:var(--space-section) 1.5rem;}
.mod-about-inner{max-width:1180px;margin:0 auto;}
.mod-about-columns{display:grid;grid-template-columns:1fr;gap:2.5rem;}
@media(min-width:900px){.mod-about-columns{grid-template-columns:1.7fr 1fr;gap:3.5rem;}}
.mod-about-col-main h2{margin-bottom:1.1rem;}
.mod-about-col-main p{font-size:1.03rem;}
.mod-about-pullquote{font-family:'Montserrat',sans-serif;font-size:clamp(1.15rem,1rem + 1vw,1.45rem);font-weight:600;color:var(--c-primary-dark);line-height:1.5;border-left:4px solid var(--c-accent);padding-left:1.3rem;margin:0 0 1.8rem;}
.mod-about-fact{display:flex;gap:1rem;background:var(--c-surface);padding:1.4rem;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);}
.mod-about-fact i{font-size:1.4rem;color:var(--c-accent);}
.mod-about-fact p{margin:0;font-size:.95rem;}


.mod-services{padding:var(--space-section) 0;}
.mod-services-header{max-width:1180px;margin:0 auto 2.2rem;padding:0 1.5rem;}
.mod-services-track{display:flex;gap:1.5rem;overflow-x:auto;padding:.5rem 1.5rem 1.6rem;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;}
.mod-services-track::-webkit-scrollbar{height:8px;}
.mod-services-track::-webkit-scrollbar-thumb{background:var(--c-border);border-radius:99px;}
.mod-services-card{
  flex:0 0 clamp(260px,78vw,340px);scroll-snap-align:start;
  background:var(--c-surface);border-radius:var(--radius-lg);padding:1.8rem 1.6rem;
  box-shadow:var(--shadow-md);border:1px solid var(--c-border);
  transition:transform .3s ease, box-shadow .3s ease;
}
.mod-services-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);}
.mod-services-card-icon{width:52px;height:52px;border-radius:var(--radius-md);background:var(--c-primary);color:#fdfcf9;display:flex;align-items:center;justify-content:center;font-size:1.3rem;margin-bottom:1.1rem;}
.mod-services-card h3{font-size:1.15rem;margin-bottom:.6rem;}
.mod-services-card p{font-size:.94rem;}


.mod-gallery-strip{padding:1rem 1.5rem var(--space-section);}
.mod-gallery-strip-inner{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:1fr;gap:1.2rem;}
@media(min-width:760px){.mod-gallery-strip-inner{grid-template-columns:1.3fr 1fr 1fr;}}
.mod-gallery-strip-item{margin:0;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md);position:relative;}
.mod-gallery-strip-item img{width:100%;height:260px;object-fit:cover;transition:transform .5s ease;}
.mod-gallery-strip-item-tall img{height:100%;min-height:260px;}
.mod-gallery-strip-item:hover img{transform:scale(1.05);}
.mod-gallery-strip-item figcaption{position:absolute;left:0;right:0;bottom:0;padding:.9rem 1.1rem;background:linear-gradient(to top, rgba(15,20,17,.75), transparent);color:#fdfcf9;font-size:.85rem;font-weight:600;}


.mod-process{padding:var(--space-section) 1.5rem;background:var(--c-surface-alt);}
.mod-process-inner{max-width:1100px;margin:0 auto;}
.mod-process-list{margin-top:2.4rem;display:grid;grid-template-columns:1fr;gap:1.4rem;}
@media(min-width:720px){.mod-process-list{grid-template-columns:repeat(2,1fr);}}
@media(min-width:1080px){.mod-process-list{grid-template-columns:repeat(3,1fr);}}
.mod-process-step{background:var(--c-surface);padding:1.7rem 1.5rem;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--c-border);transition:box-shadow .3s ease, transform .3s ease;}
.mod-process-step:hover{box-shadow:var(--shadow-md);transform:translateY(-4px);}
.mod-process-num{font-family:'Montserrat',sans-serif;font-weight:800;font-size:1.6rem;color:var(--c-accent-light);display:block;margin-bottom:.5rem;}
.mod-process-step h3{font-size:1.1rem;margin-bottom:.5rem;}
.mod-process-step p{font-size:.93rem;}


.mod-regulatory{padding:var(--space-section) 1.5rem;}
.mod-regulatory-inner{max-width:980px;margin:0 auto;display:flex;flex-direction:column;gap:1.6rem;background:var(--c-surface);padding:clamp(1.8rem,4vw,3rem);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);border:1px solid var(--c-border);}
@media(min-width:760px){.mod-regulatory-inner{flex-direction:row;align-items:flex-start;}}
.mod-regulatory-icon{width:60px;height:60px;flex-shrink:0;border-radius:50%;background:var(--c-primary);color:#fdfcf9;display:flex;align-items:center;justify-content:center;font-size:1.5rem;}
.mod-regulatory-text h2{margin-bottom:.9rem;}
.mod-regulatory-note{font-size:.88rem;font-style:italic;color:var(--c-text-muted);border-top:1px solid var(--c-border);padding-top:.9rem;margin-top:.9rem;}


.mod-comparison{padding:var(--space-section) 1.5rem;background:var(--c-surface-alt);}
.mod-comparison-inner{max-width:1080px;margin:0 auto;}
.mod-comparison-table-wrap{overflow-x:auto;margin-top:2rem;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);}
.mod-comparison-table{width:100%;border-collapse:collapse;background:var(--c-surface);min-width:640px;}
.mod-comparison-table th,.mod-comparison-table td{padding:1rem 1.2rem;text-align:left;border-bottom:1px solid var(--c-border);font-size:.94rem;}
.mod-comparison-table thead th{font-family:'Montserrat',sans-serif;font-weight:700;background:var(--c-primary-dark);color:#fdfcf9;}
.mod-comparison-table td:first-child{color:var(--c-text-muted);font-weight:600;}
.mod-comparison-table td i{color:var(--c-primary);font-size:1.05rem;}
.mod-comparison-table td .fa-minus{color:#b7b2a2;}
.mod-comparison-recommended{background:rgba(193,113,47,.08);position:relative;}
.mod-comparison-table thead th.mod-comparison-recommended{background:var(--c-accent);}
.mod-comparison-recommended span{display:block;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#fdfcf9;background:var(--c-primary-dark);padding:.2rem .55rem;border-radius:99px;margin-top:.3rem;width:fit-content;}


.mod-regions-teaser{padding:var(--space-section) 1.5rem;}
.mod-regions-teaser-inner{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:1fr;gap:2.5rem;align-items:center;}
@media(min-width:900px){.mod-regions-teaser-inner{grid-template-columns:1fr 1.1fr;}}
.mod-regions-teaser-text h2{margin-bottom:1rem;}
.mod-regions-teaser-text p{margin-bottom:1.5rem;}
.mod-regions-teaser-images{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;}
.mod-regions-teaser-images img{border-radius:var(--radius-lg);box-shadow:var(--shadow-md);height:260px;object-fit:cover;}
.mod-regions-teaser-images img:first-child{margin-top:1.8rem;}


.mod-cta-band{padding:var(--space-section) 1.5rem;background:var(--c-primary-dark);position:relative;overflow:hidden;}
.mod-cta-band::before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle, rgba(255,255,255,.08) 1px, transparent 1.5px);background-size:22px 22px;}
.mod-cta-band-inner{position:relative;max-width:680px;margin:0 auto;text-align:center;}
.mod-cta-band-inner h2{color:#fdfcf9;font-size:clamp(1.5rem,1.2rem + 1.4vw,2.1rem);margin-bottom:.9rem;}
.mod-cta-band-inner p{color:rgba(253,252,249,.8);margin-bottom:1.8rem;}


.mod-footer{background:var(--c-secondary);position:relative;margin-top:auto;}
.mod-footer-accent{height:4px;background:linear-gradient(90deg, var(--c-accent), var(--c-sage), var(--c-primary-light));}
.mod-footer-inner{max-width:1240px;margin:0 auto;padding:3.2rem 1.5rem 1.6rem;}
.mod-footer-columns{display:grid;grid-template-columns:1fr;gap:2.2rem;}
@media(min-width:700px){.mod-footer-columns{grid-template-columns:1.3fr 1fr 1fr 1.2fr;}}
.mod-footer-col h4{color:#fdfcf9;font-size:1rem;margin-bottom:1rem;}
.mod-footer-col a{display:block;color:rgba(253,252,249,.7);font-size:.92rem;margin-bottom:.65rem;transition:color .2s ease, padding-left .2s ease;}
.mod-footer-col a:hover{color:var(--c-accent-light);padding-left:.25rem;}
.mod-footer-col-brand p{color:rgba(253,252,249,.65);font-size:.9rem;margin-top:.8rem;}
.mod-footer-brand-name{font-family:'Montserrat',sans-serif;font-weight:700;color:#fdfcf9;font-size:1.1rem;margin-top:.8rem;}
.mod-footer-col p{color:rgba(253,252,249,.7);font-size:.9rem;margin-bottom:.7rem;display:flex;align-items:flex-start;gap:.5rem;}
.mod-footer-col p a{display:inline;margin:0;}
.mod-footer-bottom{border-top:1px solid rgba(253,252,249,.12);margin-top:2.4rem;padding-top:1.6rem;display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;justify-content:space-between;color:rgba(253,252,249,.55);font-size:.82rem;}


.mod-region-block{padding:var(--space-section) 1.5rem;}
.mod-region-block-inner{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:1fr;gap:2.4rem;align-items:center;}
@media(min-width:900px){.mod-region-block-inner{grid-template-columns:1fr 1fr;}}
.mod-region-block-reverse{background:var(--c-surface-alt);}
.mod-region-tag{display:inline-block;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--c-accent);margin-bottom:.7rem;}
.mod-region-block-text h2{margin-bottom:1rem;}
.mod-region-block-image{margin:0;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg);}
.mod-region-block-image img{width:100%;height:clamp(240px,32vw,380px);object-fit:cover;}
.mod-region-block-image figcaption{background:var(--c-surface);padding:.9rem 1.1rem;font-size:.85rem;color:var(--c-text-muted);font-weight:600;}
.mod-region-notes{padding:var(--space-section) 1.5rem;}
.mod-region-notes-inner{max-width:800px;margin:0 auto;text-align:center;}
.mod-region-notes-inner h2{margin-bottom:1.1rem;}
.mod-region-notes-inner p{margin-bottom:1.3rem;}
.mod-region-notes-inner .mod-btn{margin-top:.6rem;}


.mod-turnkey-intro{padding:var(--space-section) 1.5rem;}
.mod-turnkey-intro-inner{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:1fr;gap:2.2rem;align-items:center;}
@media(min-width:900px){.mod-turnkey-intro-inner{grid-template-columns:1.1fr 1fr;}}
.mod-turnkey-intro-text h2{margin-bottom:1rem;}
.mod-turnkey-intro-image{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);height:clamp(240px,30vw,360px);object-fit:cover;width:100%;}
.mod-turnkey-stages{padding:var(--space-section) 1.5rem;background:var(--c-surface-alt);}
.mod-turnkey-stages-inner{max-width:900px;margin:0 auto;}
.mod-turnkey-timeline{margin-top:2.2rem;position:relative;padding-left:2.2rem;border-left:2px dashed var(--c-border);}
.mod-turnkey-timeline-item{display:flex;gap:1.4rem;margin-bottom:2.2rem;position:relative;}
.mod-turnkey-timeline-item:last-child{margin-bottom:0;}
.mod-turnkey-timeline-item .mod-process-num{font-size:1.3rem;background:var(--c-primary);color:#fdfcf9;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-left:-3.15rem;box-shadow:var(--shadow-sm);}
.mod-turnkey-timeline-item h3{font-size:1.1rem;margin-bottom:.5rem;}
.mod-turnkey-timeline-item p{font-size:.95rem;}
.mod-turnkey-specs{padding:var(--space-section) 1.5rem;}
.mod-turnkey-specs-inner{max-width:1000px;margin:0 auto;}
.mod-comparison-table-specs td:first-child{color:var(--c-text-muted);}


.mod-visit-explain{padding:var(--space-section) 1.5rem;}
.mod-visit-explain-inner{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:1fr;gap:2.4rem;}
@media(min-width:900px){.mod-visit-explain-inner{grid-template-columns:1fr 1fr;}}
.mod-visit-explain-col h2{margin-bottom:1rem;}
.mod-visit-explain-image{margin-top:1.4rem;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);height:220px;width:100%;object-fit:cover;}
.mod-booking-form-section{padding:var(--space-section) 1.5rem;background:var(--c-surface-alt);}
.mod-booking-form-inner{max-width:900px;margin:0 auto;}


.mod-contact-form{margin-top:1.8rem;}
.mod-form-grid{display:grid;grid-template-columns:1fr;gap:1.3rem;margin-bottom:1.3rem;}
@media(min-width:640px){.mod-form-grid{grid-template-columns:1fr 1fr;}}
.mod-form-group{display:flex;flex-direction:column;gap:.5rem;}
.mod-form-group-full{margin-bottom:1.3rem;}
.mod-form-group label{font-weight:600;font-size:.9rem;color:var(--c-primary-dark);}
.mod-form-group input,.mod-form-group textarea,.mod-form-group select{
  padding:.85rem 1rem;border:1.5px solid var(--c-border);border-radius:var(--radius-md);
  background:var(--c-surface);color:var(--c-text);transition:border-color .25s ease, box-shadow .25s ease;
  min-height:48px;
}
.mod-form-group textarea{min-height:140px;resize:vertical;}
.mod-form-group input:focus,.mod-form-group textarea:focus,.mod-form-group select:focus{
  outline:none;border-color:var(--c-primary);box-shadow:0 0 0 4px rgba(31,77,58,.14);
}
.mod-field-error{border-color:#b23a3a !important;box-shadow:0 0 0 4px rgba(178,58,58,.12) !important;}
.mod-form-group-checkbox{margin-bottom:1.6rem;}
.mod-checkbox-label{display:flex;align-items:flex-start;gap:.7rem;font-size:.9rem;color:var(--c-text-muted);cursor:pointer;}
.mod-checkbox-label input{width:20px;height:20px;flex-shrink:0;margin-top:.15rem;accent-color:var(--c-primary);min-height:auto;}
.mod-checkbox-label a{color:var(--c-primary);font-weight:600;}
.iti{width:100%;}


.mod-contact-main{padding:var(--space-section) 1.5rem;}
.mod-contact-main-inner{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:1fr;gap:2.6rem;}
@media(min-width:960px){.mod-contact-main-inner{grid-template-columns:.9fr 1.3fr;}}
.mod-contact-list li{display:flex;align-items:flex-start;gap:.8rem;margin-bottom:1rem;color:var(--c-text-muted);}
.mod-contact-list li i{color:var(--c-primary);width:20px;text-align:center;margin-top:.2rem;}
.mod-contact-list li a{font-weight:600;color:var(--c-primary-dark);}
.mod-contact-map{margin-top:1.6rem;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md);}
.mod-contact-form-wrap{background:var(--c-surface);padding:clamp(1.6rem,3vw,2.4rem);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);border:1px solid var(--c-border);}
.mod-office-gallery{padding:0 1.5rem var(--space-section);}
.mod-office-gallery-inner{max-width:1180px;margin:0 auto;}
.mod-office-gallery-grid{display:grid;grid-template-columns:1fr;gap:1.4rem;margin-top:1.6rem;}
@media(min-width:720px){.mod-office-gallery-grid{grid-template-columns:1fr 1fr;}}
.mod-office-gallery-grid figure{margin:0;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md);}
.mod-office-gallery-grid img{width:100%;height:260px;object-fit:cover;transition:transform .4s ease;}
.mod-office-gallery-grid figure:hover img{transform:scale(1.04);}
.mod-office-gallery-grid figcaption{padding:.8rem 1.1rem;background:var(--c-surface);font-size:.85rem;color:var(--c-text-muted);font-weight:600;}


.mod-legal{padding:0 1.5rem var(--space-section);}
.mod-legal-inner{max-width:820px;margin:0 auto;background:var(--c-surface);padding:clamp(1.8rem,4vw,3.2rem);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);border:1px solid var(--c-border);}
.mod-legal-inner h2{font-size:1.25rem;margin:2.2rem 0 .9rem;}
.mod-legal-inner h2:first-child{margin-top:0;}
.mod-legal-inner p{margin-bottom:1.1rem;}
.mod-legal-table{width:100%;border-collapse:collapse;margin:1rem 0 1.6rem;font-size:.9rem;}
.mod-legal-table th,.mod-legal-table td{border:1px solid var(--c-border);padding:.75rem .9rem;text-align:left;}
.mod-legal-table thead th{background:var(--c-surface-alt);font-family:'Montserrat',sans-serif;color:var(--c-primary-dark);}
.mod-legal-dl{margin:1rem 0 1.6rem;}
.mod-legal-dl dt{font-weight:700;color:var(--c-primary-dark);margin-top:1rem;}
.mod-legal-dl dd{margin:.3rem 0 0;color:var(--c-text-muted);}


.mod-thanks{min-height:calc(100vh - var(--nav-h-mobile) - 260px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:4rem 1.5rem;gap:1.6rem;}
.mod-thanks-dot{width:22px;height:22px;border-radius:50%;background:var(--c-accent);transform:scale(0);animation:mod-dot-in .6s cubic-bezier(.34,1.56,.64,1) forwards;}
.mod-thanks-title{font-size:clamp(1.5rem,1.2rem + 1.4vw,2.2rem);opacity:0;animation:mod-fade-in .7s ease forwards;animation-delay:.6s;}
.mod-thanks-link{opacity:0;font-weight:600;color:var(--c-primary);border-bottom:2px solid var(--c-primary);padding-bottom:.15rem;animation:mod-fade-in .7s ease forwards;animation-delay:1.3s;transition:color .2s ease, border-color .2s ease;}
.mod-thanks-link:hover{color:var(--c-accent);border-color:var(--c-accent);}
@keyframes mod-dot-in{to{transform:scale(1);}}
@keyframes mod-fade-in{to{opacity:1;}}


.mod-cookie-bell{position:fixed;bottom:1.5rem;right:1.5rem;width:56px;height:56px;border-radius:50%;background:var(--c-primary-dark);color:#fdfcf9;border:none;box-shadow:var(--shadow-lg);z-index:2000;display:flex;align-items:center;justify-content:center;font-size:1.25rem;transition:transform .25s ease, background-color .25s ease;}
.mod-cookie-bell:hover{transform:translateY(-3px) scale(1.05);background:var(--c-primary);}
.mod-cookie-badge{position:absolute;top:6px;right:6px;width:11px;height:11px;border-radius:50%;background:var(--c-accent);border:2px solid var(--c-surface);}
.mod-cookie-overlay{position:fixed;inset:0;background:rgba(15,20,17,.5);opacity:0;pointer-events:none;transition:opacity .3s ease;z-index:2050;}
.mod-cookie-overlay.is-open{opacity:1;pointer-events:auto;}
.mod-cookie-panel{
  position:fixed;left:50%;bottom:0;transform:translate(-50%,100%);
  width:min(480px,92vw);max-height:82vh;overflow-y:auto;
  background:var(--c-surface);border-radius:var(--radius-xl) var(--radius-xl) 0 0;
  box-shadow:var(--shadow-xl);z-index:2100;padding:1.8rem 1.8rem 2.2rem;
  transition:transform .4s cubic-bezier(.4,0,.2,1);
}
.mod-cookie-panel.is-open{transform:translate(-50%,0);}
.mod-cookie-panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;}
.mod-cookie-panel-header h3{font-size:1.2rem;}
.mod-cookie-close{width:36px;height:36px;border-radius:50%;border:none;background:var(--c-surface-alt);font-size:1.3rem;color:var(--c-primary-dark);transition:background-color .2s ease;}
.mod-cookie-close:hover{background:var(--c-accent-light);}
.mod-cookie-panel p{font-size:.88rem;margin-bottom:1.2rem;}
.mod-cookie-panel a{color:var(--c-primary);font-weight:600;}
.mod-cookie-option{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:.9rem 0;border-top:1px solid var(--c-border);}
.mod-cookie-option strong{font-size:.92rem;color:var(--c-primary-dark);}
.mod-cookie-option p{font-size:.82rem;margin:.25rem 0 0;}
.mod-cookie-switch{position:relative;display:inline-block;width:44px;height:26px;flex-shrink:0;margin-top:.2rem;}
.mod-cookie-switch input{opacity:0;width:0;height:0;}
.mod-cookie-switch span{position:absolute;inset:0;background:var(--c-border);border-radius:99px;transition:background-color .25s ease;}
.mod-cookie-switch span::before{content:"";position:absolute;width:20px;height:20px;left:3px;top:3px;background:#fdfcf9;border-radius:50%;transition:transform .25s ease;box-shadow:var(--shadow-sm);}
.mod-cookie-switch input:checked + span{background:var(--c-primary);}
.mod-cookie-switch input:checked + span::before{transform:translateX(18px);}
.mod-cookie-switch-disabled{opacity:.6;}
.mod-cookie-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.4rem;}
.mod-cookie-actions .mod-btn{flex:1;min-width:140px;padding:.75rem 1rem;font-size:.9rem;}


.rellax{will-change:transform;}
@media(max-width:600px){
  .mod-hero-cta{flex-direction:column;align-items:stretch;}
  .mod-hero-cta .mod-btn{width:100%;}
}