@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@500;600;700;800&family=Source+Sans+3:wght@400;500;600&display=swap');

:root{
  --id-ink: #211f2b;
  --id-ink-soft: #4a4759;
  --id-cream: #faf6f1;
  --id-cream-deep: #f2ead e;
  --id-primary: #1f3d3a;
  --id-primary-light: #2f5a55;
  --id-accent: #d97e4a;
  --id-accent-light: #f0a76f;
  --id-clay: #b5563e;
  --id-teal-deep: #142826;
  --id-line: rgba(33,31,43,0.1);

  --id-radius-sm: 10px;
  --id-radius-md: 18px;
  --id-radius-lg: 28px;
  --id-radius-xl: 42px;

  --id-shadow-sm: 0 2px 6px rgba(20,40,38,0.06), 0 1px 2px rgba(20,40,38,0.08);
  --id-shadow-md: 0 8px 24px rgba(20,40,38,0.10), 0 2px 8px rgba(20,40,38,0.08);
  --id-shadow-lg: 0 20px 50px rgba(20,40,38,0.16), 0 8px 16px rgba(20,40,38,0.08);

  --id-space-xs: 0.5rem;
  --id-space-sm: 1rem;
  --id-space-md: 2rem;
  --id-space-lg: 4rem;
  --id-space-xl: 7rem;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:'Source Sans 3', sans-serif;
  color: var(--id-ink);
  background: var(--id-cream);
  line-height:1.65;
  font-size:1.05rem;
  overflow-x:hidden;
}
h1,h2,h3,h4{
  font-family:'Montserrat', sans-serif;
  color: var(--id-ink);
  line-height:1.15;
  margin:0 0 0.6em;
  font-weight:700;
}
p{margin:0 0 1em;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
button{font-family:inherit; cursor:pointer; border:none; background:none;}

.id-container{
  container-type: inline-size;
  max-width:1240px;
  margin:0 auto;
  padding:0 1.5rem;
}
.id-container-narrow{max-width:840px;}


.id-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:0.5rem;
  padding:0.9rem 1.9rem;
  border-radius: var(--id-radius-md);
  font-family:'Montserrat', sans-serif;
  font-weight:600;
  font-size:0.98rem;
  min-height:48px;
  transition: transform 0.25s ease, box-shadow 0.25s ease, background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
  cursor:pointer;
}
.id-btn-primary{
  background: var(--id-accent);
  color: #fff;
  box-shadow: var(--id-shadow-md);
}
.id-btn-primary:hover{
  background: var(--id-clay);
  transform: translateY(-2px);
  box-shadow: var(--id-shadow-lg);
}
.id-btn-ghost{
  background: transparent;
  color: var(--id-primary);
  border:2px solid var(--id-primary);
}
.id-btn-ghost:hover{
  background: var(--id-primary);
  color:#fff;
  transform: translateY(-2px);
}
.id-btn-light{
  background:#fff;
  color: var(--id-primary);
  box-shadow: var(--id-shadow-md);
}
.id-btn-light:hover{transform:translateY(-2px); box-shadow:var(--id-shadow-lg);}
.id-btn-outline-dark{
  background:transparent;
  border:2px solid var(--id-ink);
  color:var(--id-ink);
}
.id-btn-outline-dark:hover{ background:var(--id-ink); color:#fff; transform:translateY(-2px); }
.id-btn-outline-white{
  background:transparent;
  border:2px solid #fff;
  color:#fff;
}
.id-btn-outline-white:hover{ background:#fff; color:var(--id-primary); transform:translateY(-2px); }
.id-btn-sm{padding:0.6rem 1.2rem; font-size:0.85rem; min-height:40px;}
.id-btn-ghost-sm{
  background:transparent; color:var(--id-ink-soft); font-family:'Montserrat',sans-serif; font-weight:600; font-size:0.85rem; padding:0.6rem 1rem; min-height:40px; border-radius:var(--id-radius-sm); transition:background-color .25s ease;
}
.id-btn-ghost-sm:hover{ background: rgba(33,31,43,0.06); }


.id-nav{
  position:sticky; top:0; z-index:1000;
  background: rgba(250,246,241,0.0);
  transition: background-color .35s ease, box-shadow .35s ease, border-color .35s ease;
  border-bottom:1px solid transparent;
}
.id-nav.id-nav-scrolled{
  background: rgba(250,246,241,0.96);
  backdrop-filter: blur(10px);
  box-shadow: var(--id-shadow-sm);
  border-bottom:1px solid var(--id-line);
}
.id-nav-inner{
  max-width:1240px; margin:0 auto; padding: 1.1rem 1.5rem;
  display:flex; align-items:center; justify-content:space-between; gap:1.5rem;
}
.id-logo{ display:flex; align-items:center; gap:0.6rem; font-family:'Montserrat',sans-serif; font-weight:700; font-size:1.05rem; }
.id-logo-mark{
  width:38px; height:38px; border-radius:12px; background: var(--id-primary);
  color:#fff; display:flex; align-items:center; justify-content:center; font-size:1.1rem;
  box-shadow: var(--id-shadow-sm);
}
.id-logo-text em{ font-style:normal; color: var(--id-accent); }
.id-nav-links{ display:flex; align-items:center; gap:1.9rem; font-weight:600; font-size:0.95rem; }
.id-nav-links a{ position:relative; padding:0.3rem 0; color: var(--id-ink-soft); transition:color .25s ease; }
.id-nav-links a:hover, .id-nav-links a.id-active{ color: var(--id-primary); }
.id-nav-links a.id-active::after{
  content:''; position:absolute; left:0; right:0; bottom:-4px; height:2px; background: var(--id-accent); border-radius:2px;
}
.id-nav-cta{ display:inline-flex; }
.id-burger{
  display:none; width:46px; height:46px; border-radius:50%; background:rgba(31,61,58,0.08);
  align-items:center; justify-content:center; flex-direction:column; gap:5px; position:relative; z-index:1200;
}
.id-burger span{ width:20px; height:2px; background:var(--id-ink); border-radius:2px; transition: all .3s ease; }
.id-burger.id-open span:nth-child(1){ transform: translateY(7px) rotate(45deg); }
.id-burger.id-open span:nth-child(2){ opacity:0; }
.id-burger.id-open span:nth-child(3){ transform: translateY(-7px) rotate(-45deg); }


.id-mobile-menu{
  position:fixed; inset:0; z-index:1100;
  background: var(--id-primary);
  clip-path: circle(0px at calc(100% - 46px) 46px);
  transition: clip-path 0.6s cubic-bezier(.65,0,.35,1);
  pointer-events:none;
  display:flex; align-items:center; justify-content:center;
}
.id-mobile-menu.id-menu-open{
  clip-path: circle(150% at calc(100% - 46px) 46px);
  pointer-events:auto;
}
.id-mobile-menu nav{ display:flex; flex-direction:column; align-items:center; gap:1.6rem; }
.id-mobile-menu a{
  font-family:'Montserrat',sans-serif; font-weight:600; font-size:1.5rem; color:#fff;
  opacity:0; transform:translateY(14px); transition: opacity .45s ease, transform .45s ease;
}
.id-mobile-menu.id-menu-open a{ opacity:1; transform:translateY(0); }
.id-mobile-menu.id-menu-open a:nth-child(1){transition-delay:.15s;}
.id-mobile-menu.id-menu-open a:nth-child(2){transition-delay:.22s;}
.id-mobile-menu.id-menu-open a:nth-child(3){transition-delay:.29s;}
.id-mobile-menu.id-menu-open a:nth-child(4){transition-delay:.36s;}
.id-mobile-menu.id-menu-open a:nth-child(5){transition-delay:.43s;}
.id-mobile-menu.id-menu-open a:nth-child(6){transition-delay:.50s;}
.id-mobile-menu .id-btn{ margin-top:0.6rem; }


.id-hero{
  position:relative;
  padding: 6.5rem 0 8rem;
  background: var(--id-teal-deep);
  overflow:hidden;
}
.id-hero-cutout{
  position:absolute; top:8%; right:-6%; width:520px; height:520px;
  clip-path: circle(50% at 50% 50%);
  opacity:0.55;
}
.id-hero-cutout img{ width:100%; height:100%; object-fit:cover; }
.id-hero-content{
  position:relative; z-index:2; max-width:1240px; margin:0 auto; padding:0 1.5rem;
}
.id-eyebrow{
  color: var(--id-accent-light);
  font-family:'Montserrat',sans-serif; font-weight:600; letter-spacing:0.06em;
  text-transform:uppercase; font-size:0.85rem; margin-bottom:1.2rem;
}
.id-hero h1{
  color:#fbf8f4;
  font-size: clamp(2.2rem, 5.2vw, 4.1rem);
  max-width:820px;
  font-weight:800;
}
.id-hero h1 span{ color: var(--id-accent-light); }
.id-hero-lead{
  color: rgba(251,248,244,0.82);
  font-size: clamp(1.02rem, 1.4vw, 1.2rem);
  max-width:620px;
  margin-bottom:2.4rem;
}
.id-hero-actions{ display:flex; gap:1rem; flex-wrap:wrap; }
.id-hero .id-btn-ghost{ color:#fbf8f4; border-color: rgba(251,248,244,0.5); }
.id-hero .id-btn-ghost:hover{ background:#fbf8f4; color:var(--id-teal-deep); border-color:#fbf8f4; }


.id-transition{
  height:90px;
  background: var(--id-cream);
  clip-path: polygon(0 100%, 100% 0, 100% 100%);
  margin-top:-2px;
  position:relative;
  z-index:3;
}


.id-intro{ padding: var(--id-space-lg) 0; }
.id-intro-grid{
  display:grid; grid-template-columns: 1.1fr 0.9fr; gap: 3rem; align-items:center;
}
.id-intro-text h2{ font-size: clamp(1.5rem, 3vw, 2.1rem); }
.id-intro-media img{
  border-radius: var(--id-radius-lg);
  box-shadow: var(--id-shadow-lg);
  aspect-ratio: 4/3.2; object-fit:cover;
}


.id-why{ padding: var(--id-space-lg) 0; background: var(--id-cream-deep); }
.id-section-title{ font-size: clamp(1.6rem, 3.4vw, 2.4rem); text-align:center; max-width:720px; margin:0 auto 0.7em; }
.id-section-sub{ text-align:center; max-width:640px; margin:0 auto 3rem; color: var(--id-ink-soft); }
.id-why-grid{
  container-type: inline-size;
  container-name: why-grid;
  display:grid; grid-template-columns: repeat(4, 1fr); gap:1.6rem;
}
.id-why-card{
  background:#fff;
  padding:2rem 1.6rem;
  border-radius: var(--id-radius-lg);
  box-shadow: var(--id-shadow-sm);
  transition: transform .3s ease, box-shadow .3s ease;
}
.id-why-card:hover{ transform: translateY(-6px); box-shadow: var(--id-shadow-md); }
.id-why-icon{
  width:56px; height:56px; border-radius:16px; background: var(--id-primary);
  color:#fff; display:flex; align-items:center; justify-content:center; font-size:1.3rem; margin-bottom:1.2rem;
}
.id-why-card h3{ font-size:1.1rem; margin-bottom:0.5em; }
.id-why-card p{ color: var(--id-ink-soft); font-size:0.96rem; }

@container why-grid (max-width: 760px){
  .id-why-grid{ grid-template-columns: repeat(2,1fr); }
}
@container why-grid (max-width: 420px){
  .id-why-grid{ grid-template-columns: 1fr; }
}


.id-cutout-band{
  position:relative;
  padding: 6rem 0;
  background: var(--id-primary);
  overflow:hidden;
}
.id-band-alt{ background: var(--id-clay); }
.id-band-dark{ background: var(--id-teal-deep); }
.id-band-clay-dark{ background:#7a3a29; }
.id-cutout-shape{
  position:absolute; opacity:0.5;
}
.id-cutout-shape img{ width:100%; height:100%; object-fit:cover; }
.id-cutout-band .id-cutout-shape{
  top:50%; right:-4%; width:420px; height:420px; transform:translateY(-50%);
  clip-path: circle(50% at 50% 50%);
}
.id-cutout-square{ clip-path: polygon(15% 0, 100% 0, 85% 100%, 0 100%); }
.id-cutout-circle-right{ clip-path: circle(50% at 50% 50%); }
.id-cutout-diamond{ clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%); }
.id-cutout-circle-left{ left:-4%; right:auto; clip-path: circle(50% at 50% 50%); }
.id-band-content{ position:relative; z-index:2; max-width:640px; }
.id-band-content h2{ color:#fbf8f4; font-size: clamp(1.5rem,3vw,2.2rem); }
.id-band-content p{ color: rgba(251,248,244,0.85); font-size:1.05rem; }


.id-modules{ padding: var(--id-space-lg) 0; }
.id-swiper{ padding-bottom:3rem; }
.id-module-card{
  background:#fff; border-radius: var(--id-radius-lg); padding:2.4rem 2rem;
  box-shadow: var(--id-shadow-md); min-height:260px;
  display:flex; flex-direction:column; justify-content:flex-start;
}
.id-module-num{
  font-family:'Montserrat',sans-serif; font-weight:800; font-size:2.6rem; color: var(--id-accent-light);
  -webkit-text-stroke: 1px var(--id-accent); opacity:0.9;
}
.id-module-card h3{ font-size:1.2rem; margin-top:0.6rem; }
.id-module-card p{ color: var(--id-ink-soft); font-size:0.96rem; }
.swiper-pagination-bullet{ background: var(--id-primary); opacity:0.3; }
.swiper-pagination-bullet-active{ opacity:1; background: var(--id-accent); }


.id-gallery{ padding: var(--id-space-lg) 0 0; }
.id-gallery-grid{
  display:grid; grid-template-columns: 1fr 1fr 1fr; grid-auto-rows:220px; gap:1.2rem;
}
.id-gallery-tall{ grid-row: span 2; }
.id-gallery-item{ border-radius: var(--id-radius-md); overflow:hidden; box-shadow: var(--id-shadow-sm); }
.id-gallery-item img{ width:100%; height:100%; object-fit:cover; transition: transform .5s ease; }
.id-gallery-item:hover img{ transform: scale(1.06); }


.id-dual-cta{ padding: var(--id-space-lg) 0; }
.id-dual-grid{ display:grid; grid-template-columns: 1.15fr 0.85fr; gap:1.6rem; }
.id-dual-card{ border-radius: var(--id-radius-lg); padding: 2.6rem; }
.id-dual-primary{ background: var(--id-primary); color:#fbf8f4; box-shadow: var(--id-shadow-lg); }
.id-dual-primary h3{ color:#fbf8f4; font-size:1.5rem; }
.id-dual-primary p{ color: rgba(251,248,244,0.85); }
.id-dual-secondary{ background:#fff; border:2px solid var(--id-line); }
.id-dual-secondary h3{ font-size:1.3rem; }
.id-dual-secondary p{ color: var(--id-ink-soft); }


.id-faq{ padding: var(--id-space-lg) 0; background: var(--id-cream-deep); }
.id-faq-list{ display:flex; flex-direction:column; gap:1rem; margin-top:2.5rem; }
.id-faq-item{ background:#fff; border-radius: var(--id-radius-md); box-shadow: var(--id-shadow-sm); overflow:hidden; }
.id-faq-q{
  width:100%; display:flex; align-items:center; justify-content:space-between;
  padding:1.3rem 1.6rem; font-family:'Montserrat',sans-serif; font-weight:600; font-size:1rem; color:var(--id-ink);
  text-align:left; transition: background-color .25s ease;
}
.id-faq-q:hover{ background: rgba(217,126,74,0.06); }
.id-faq-q i{ transition: transform .3s ease; color: var(--id-accent); }
.id-faq-item.id-open .id-faq-q i{ transform: rotate(45deg); }
.id-faq-a{
  max-height:0; overflow:hidden; transition: max-height .4s ease, padding .4s ease;
  padding:0 1.6rem;
}
.id-faq-a p{ color: var(--id-ink-soft); padding-bottom:1.3rem; margin:0; }
.id-faq-item.id-open .id-faq-a{ max-height:300px; }


.id-footer{ background: var(--id-teal-deep); color: rgba(251,248,244,0.85); padding: 4rem 0 0; margin-top:auto; }
.id-footer-grid{ display:grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap:2.5rem; padding-bottom:2.5rem; }
.id-footer p{ font-size:0.92rem; color: rgba(251,248,244,0.7); }
.id-footer-logo{ margin-bottom:1rem; }
.id-footer-logo .id-logo-text{ color:#fbf8f4; }
.id-footer-col h4{ color:#fbf8f4; font-size:0.95rem; text-transform:uppercase; letter-spacing:0.05em; margin-bottom:1rem; }
.id-footer-col a{ display:block; margin-bottom:0.6rem; color: rgba(251,248,244,0.72); font-size:0.92rem; transition:color .25s ease; }
.id-footer-col a:hover{ color: var(--id-accent-light); }
.id-footer-col p{ display:flex; align-items:flex-start; gap:0.5rem; margin-bottom:0.7rem; }
.id-footer-bottom{ border-top:1px solid rgba(251,248,244,0.12); padding:1.4rem 1.5rem; text-align:center; font-size:0.85rem; }
.id-footer-on-accent{ background: var(--id-teal-deep); }


.id-page-hero{
  position:relative; padding: 6rem 0 5rem; overflow:hidden; background: var(--id-primary);
}
.id-page-hero .id-container{ position:relative; z-index:2; }
.id-page-hero h1{ color:#fbf8f4; font-size: clamp(2rem, 4.4vw, 3.2rem); max-width:760px; }
.id-page-hero-alt{ background: var(--id-clay); }
.id-page-hero-teal{ background: var(--id-teal-deep); }
.id-page-hero-clay{ background:#7a3a29; }
.id-page-hero-small{ padding: 4.5rem 0 3.5rem; }
.id-hero-lead-alt{ color: rgba(251,248,244,0.85); max-width:600px; font-size:1.05rem; }

.id-page-hero .id-cutout-shape{ position:absolute; opacity:0.45; top:50%; right:-6%; width:380px; height:380px; transform:translateY(-50%); }
.id-cutout-square{ clip-path: polygon(15% 0, 100% 0, 85% 100%, 0 100%); }
.id-cutout-circle{ clip-path: circle(50% at 50%); }
.id-cutout-oval{ clip-path: ellipse(50% 40% at 50% 50%); }
.id-cutout-square-alt{ clip-path: polygon(0 15%, 85% 0, 100% 85%, 15% 100%); left:-6%; right:auto; }


.id-story{ padding: var(--id-space-lg) 0; }
.id-story-block{ margin-bottom: 5rem; }
.id-story-block:last-child{ margin-bottom:0; }
.id-drop{ font-size:1.3rem; color: var(--id-ink); font-weight:500; }
.id-story-block h2{ font-size: clamp(1.4rem, 2.6vw, 1.9rem); }
.id-story-reverse{ display:grid; grid-template-columns: 0.9fr 1.1fr; gap:2.5rem; align-items:center; margin-bottom:5rem; }
.id-story-img img{ border-radius: var(--id-radius-lg); box-shadow: var(--id-shadow-md); aspect-ratio:4/3.3; object-fit:cover; }
.id-story-img-wide{ margin-top:2rem; }
.id-story-img-wide img{ aspect-ratio: 16/7; }


.id-outcomes{ padding: var(--id-space-lg) 0; }
.id-outcome-row{
  display:grid; grid-template-columns: 100px 1fr; gap:1.8rem; padding: 1.8rem 0;
  border-bottom:1px solid var(--id-line);
}
.id-outcome-row:last-child{ border-bottom:none; }
.id-outcome-num{
  font-family:'Montserrat',sans-serif; font-weight:800; font-size:2.4rem; color: var(--id-accent);
}
.id-outcome-row h3{ font-size:1.25rem; }
.id-outcome-row p{ color: var(--id-ink-soft); }


.id-syllabus{ padding: var(--id-space-lg) 0; }
.id-syllabus-item{
  background:#fff; border-radius: var(--id-radius-md); padding:1.8rem 2rem; margin-bottom:1.2rem; box-shadow: var(--id-shadow-sm);
}
.id-syllabus-item h4{ font-size:1.05rem; display:flex; align-items:center; gap:0.6rem; color:var(--id-primary); }
.id-syllabus-item h4 i{ color: var(--id-accent); }
.id-syllabus-item p{ color: var(--id-ink-soft); margin:0.6rem 0 0; }


.id-framework{ padding: var(--id-space-lg) 0 2rem; }
.id-framework-grid-section{ padding: 1rem 0 var(--id-space-lg); }
.id-fw-grid{ display:grid; grid-template-columns: repeat(2, 1fr); gap:1.6rem; }
.id-fw-card{
  background:#fff; padding:2.2rem; border-radius: var(--id-radius-lg); box-shadow: var(--id-shadow-sm); position:relative;
  border-left:5px solid var(--id-accent);
}
.id-fw-card-b{ border-left-color: var(--id-primary); }
.id-fw-card-c{ border-left-color: var(--id-clay); }
.id-fw-card-d{ border-left-color: var(--id-teal-deep); }
.id-fw-letter{
  font-family:'Montserrat',sans-serif; font-weight:800; font-size:2rem; color: rgba(31,61,58,0.18);
  display:block; margin-bottom:0.4rem;
}
.id-fw-card h3{ font-size:1.15rem; }
.id-fw-card p{ color: var(--id-ink-soft); font-size:0.95rem; }
.id-framework-cta{ padding: 2rem 0 var(--id-space-lg); text-align:center; }
.id-framework-cta h2{ font-size: clamp(1.4rem,2.6vw,2rem); }
.id-framework-cta p{ color: var(--id-ink-soft); margin-bottom:1.6rem; }


.id-contact-section{ padding: var(--id-space-lg) 0; }
.id-contact-grid{ display:grid; grid-template-columns: 0.9fr 1.1fr; gap:3rem; }
.id-contact-info h2{ font-size:1.7rem; }
.id-contact-info > p{ color: var(--id-ink-soft); }
.id-contact-item{ display:flex; gap:1rem; align-items:flex-start; margin-bottom:1.3rem; }
.id-contact-item i{ width:42px; height:42px; border-radius:12px; background: var(--id-primary); color:#fff; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.id-contact-item strong{ display:block; margin-bottom:0.2rem; }
.id-contact-item p{ margin:0; color: var(--id-ink-soft); }
.id-map-wrap{ border-radius: var(--id-radius-md); overflow:hidden; box-shadow: var(--id-shadow-sm); margin-top:1.5rem; }

.id-contact-form-wrap{ background:#fff; border-radius: var(--id-radius-lg); padding:2.4rem; box-shadow: var(--id-shadow-md); }
.id-form-row{ display:flex; gap:1rem; flex-wrap:wrap; }
.id-form-group{ flex:1 1 200px; display:flex; flex-direction:column; gap:0.4rem; margin-bottom:1rem; }
.id-form-group label{ font-family:'Montserrat',sans-serif; font-weight:600; font-size:0.88rem; color: var(--id-ink-soft); }
.id-form-group input, .id-form-group textarea{
  border:1.5px solid var(--id-line); border-radius: var(--id-radius-sm); padding:0.8rem 1rem; font-family:inherit; font-size:0.96rem;
  background: var(--id-cream); transition: border-color .25s ease, box-shadow .25s ease; resize:vertical;
}
.id-form-group input:focus, .id-form-group textarea:focus{
  outline:none; border-color: var(--id-primary); box-shadow: 0 0 0 3px rgba(31,61,58,0.12);
}
.id-form-row-bottom{ display:flex; align-items:center; justify-content:space-between; gap:1.2rem; flex-wrap:wrap; margin-top:0.5rem; }
.id-checkbox-label{ display:flex; align-items:flex-start; gap:0.6rem; font-size:0.88rem; color: var(--id-ink-soft); cursor:pointer; }
.id-checkbox-label input{ margin-top:0.2rem; width:18px; height:18px; flex-shrink:0; }
.id-checkbox-label a{ color: var(--id-primary); text-decoration:underline; }

.id-office-gallery{ padding: 0 0 var(--id-space-lg); }
.id-office-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap:1.2rem; }
.id-office-item{ border-radius: var(--id-radius-md); overflow:hidden; box-shadow: var(--id-shadow-sm); aspect-ratio: 4/3; }
.id-office-item img{ width:100%; height:100%; object-fit:cover; transition: transform .5s ease; }
.id-office-item:hover img{ transform: scale(1.06); }


.id-thanks-main{
  min-height:70vh; display:flex; align-items:center; justify-content:center; text-align:center;
  background: var(--id-primary); padding: 5rem 1.5rem;
}
.id-thanks-content{ max-width:560px; }
.id-thanks-icon{
  width:80px; height:80px; border-radius:50%; background: rgba(251,248,244,0.15); color:#fbf8f4;
  display:flex; align-items:center; justify-content:center; font-size:2rem; margin:0 auto 1.6rem; border:2px solid rgba(251,248,244,0.4);
}
.id-thanks-content h1{ color:#fbf8f4; font-size: clamp(2rem,4vw,2.8rem); }
.id-thanks-content p{ color: rgba(251,248,244,0.85); font-size:1.05rem; margin-bottom:2rem; }


.id-legal-main{ background: var(--id-cream); }
.id-legal-hero{ padding: 5rem 0 3.5rem; background: var(--id-primary); }
.id-legal-hero h1{ color:#fbf8f4; font-size: clamp(1.9rem, 3.6vw, 2.8rem); }
.id-legal-intro{ color: rgba(251,248,244,0.85); max-width:680px; font-size:1.02rem; }
.id-legal-hero-terms{ background: var(--id-clay); }
.id-legal-hero-cookies{ background: var(--id-teal-deep); }
.id-legal-hero-aviso{ background:#7a3a29; }

.id-legal-timeline{ padding: var(--id-space-lg) 0; position:relative; }
.id-tl-item{ display:grid; grid-template-columns: 60px 1fr; gap:1.6rem; position:relative; padding-bottom:2.6rem; }
.id-tl-item::before{
  content:''; position:absolute; left:29px; top:50px; bottom:-10px; width:2px; background: var(--id-line);
}
.id-tl-item:last-child::before{ display:none; }
.id-tl-marker{
  width:58px; height:58px; border-radius:50%; background: var(--id-primary); color:#fff;
  display:flex; align-items:center; justify-content:center; font-family:'Montserrat',sans-serif; font-weight:700;
  font-size:1.1rem; box-shadow: var(--id-shadow-sm); flex-shrink:0;
}
.id-tl-marker-letter{ background: var(--id-clay); }
.id-tl-marker-dot{ width:20px; height:20px; margin:19px; background: var(--id-teal-deep); }
.id-legal-timeline-compact .id-tl-item{ padding-bottom:1.8rem; grid-template-columns: 60px 1fr; }
.id-legal-timeline-compact .id-tl-item::before{ left:19px; top:39px; }
.id-tl-body h3{ font-size:1.15rem; margin-bottom:0.4em; }
.id-tl-body p{ color: var(--id-ink-soft); }


.id-cookie-card{
  position:fixed; bottom:1.5rem; left:50%; transform: translateX(-50%);
  width:min(560px, 92vw); background:#fff; border-radius: var(--id-radius-lg);
  box-shadow: var(--id-shadow-lg); z-index:2000; padding:1.4rem 1.6rem;
  transition: all .5s cubic-bezier(.65,0,.35,1);
  display:none;
}
.id-cookie-card.id-show{ display:block; }
.id-cookie-basic p{ font-size:0.92rem; color: var(--id-ink-soft); margin-bottom:1rem; }
.id-cookie-actions{ display:flex; justify-content:flex-end; gap:0.8rem; flex-wrap:wrap; }
.id-cookie-panel{
  max-height:0; overflow:hidden; transition: max-height .5s ease, margin-top .5s ease; margin-top:0;
}
.id-cookie-card.id-expanded{ width:min(640px, 94vw); }
.id-cookie-card.id-expanded .id-cookie-panel{ max-height:700px; margin-top:1rem; }
.id-cookie-panel h4{ font-size:1.05rem; margin-bottom:1rem; }
.id-cookie-row{ display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:0.8rem 0; border-top:1px solid var(--id-line); }
.id-cookie-row strong{ font-size:0.94rem; }
.id-cookie-row p{ font-size:0.85rem; color: var(--id-ink-soft); margin:0.2rem 0 0; }
.id-switch{ position:relative; width:44px; height:26px; flex-shrink:0; }
.id-switch input{ opacity:0; width:0; height:0; }
.id-switch span{ position:absolute; inset:0; background: rgba(33,31,43,0.2); border-radius:20px; transition: background-color .25s ease; }
.id-switch span::before{ content:''; position:absolute; width:20px; height:20px; left:3px; top:3px; background:#fff; border-radius:50%; transition: transform .25s ease; }
.id-switch input:checked + span{ background: var(--id-primary); }
.id-switch input:checked + span::before{ transform: translateX(18px); }
.id-cookie-panel-actions{ justify-content:flex-end; margin-top:1.2rem; }


@media (max-width: 1024px){
  .id-intro-grid, .id-story-reverse, .id-contact-grid, .id-dual-grid{ grid-template-columns:1fr; }
  .id-fw-grid{ grid-template-columns:1fr; }
  .id-footer-grid{ grid-template-columns: 1fr 1fr; }
  .id-gallery-grid{ grid-template-columns: 1fr 1fr; grid-auto-rows:200px; }
  .id-gallery-tall{ grid-row: span 1; }
}

@media (max-width: 860px){
  .id-nav-links, .id-nav-cta{ display:none; }
  .id-burger{ display:flex; }
  .id-why-grid{ grid-template-columns: repeat(2,1fr); }
  .id-office-grid{ grid-template-columns: 1fr 1fr; }
}

@media (max-width: 640px){
  body{ font-size:1rem; }
  .id-hero{ padding: 4.5rem 0 5rem; }
  .id-hero-cutout{ width:280px; height:280px; top:auto; bottom:-8%; right:-18%; }
  .id-hero-actions{ flex-direction:column; align-items:stretch; }
  .id-hero-actions .id-btn{ width:100%; }
  .id-why-grid{ grid-template-columns:1fr; }
  .id-gallery-grid{ grid-template-columns:1fr; grid-auto-rows:220px; }
  .id-office-grid{ grid-template-columns:1fr; }
  .id-footer-grid{ grid-template-columns:1fr; text-align:left; }
  .id-form-row{ flex-direction:column; }
  .id-form-row-bottom{ flex-direction:column; align-items:stretch; }
  .id-form-row-bottom .id-btn{ width:100%; }
  .id-cookie-actions{ justify-content:stretch; flex-direction:column; }
  .id-cookie-actions .id-btn{ width:100%; }
  .id-outcome-row{ grid-template-columns: 60px 1fr; }
  .id-page-hero .id-cutout-shape{ width:220px; height:220px; opacity:0.3; }
}