/* ==========================================================================
   Cumace Zofedi — Pixel Perfect Flat design system
   ========================================================================== */

:root{
  --color-bg: #FAF7F1;
  --color-bg-alt: #F1EADC;
  --color-surface: #FFFEFB;
  --color-ink: #1B1E27;
  --color-ink-soft: #565C68;
  --color-ink-faint: #8A8F99;

  --color-primary: #1D3557;
  --color-primary-dark: #12233D;
  --color-primary-light: #2E4B77;

  --color-accent: #D2601F;
  --color-accent-dark: #A94B15;
  --color-accent-soft: #F4DDC6;

  --color-secondary: #3E7A5C;
  --color-secondary-dark: #2C5A43;
  --color-secondary-soft: #DCEAE1;

  --color-line: #E3D9C6;
  --color-line-dark: #2A3B57;

  --radius-sm: 8px;
  --radius-md: 14px;
  --radius-lg: 22px;
  --radius-xl: 32px;

  --space-1: 0.5rem;
  --space-2: 1rem;
  --space-3: 1.5rem;
  --space-4: 2.25rem;
  --space-5: 3.5rem;
  --space-6: 5rem;
  --space-7: 7rem;

  --shadow-float: 0 18px 40px -12px rgba(18, 35, 61, 0.28);
  --shadow-float-sm: 0 10px 24px -8px rgba(18, 35, 61, 0.22);
  --shadow-pop: 0 22px 46px -18px rgba(210, 96, 31, 0.35);

  --ease: cubic-bezier(.4,0,.2,1);
}

*,*::before,*::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin:0;
  background: var(--color-bg);
  color: var(--color-ink);
  font-family: 'Manrope', sans-serif;
  font-weight: 400;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img{ max-width:100%; display:block; }
a{ color: inherit; text-decoration:none; }
button{ font-family: inherit; cursor:pointer; }
ul{ margin:0; padding:0; list-style:none; }

.container{
  width:100%;
  max-width: 1240px;
  margin-inline:auto;
  padding-inline: 1.5rem;
}
@media(min-width:768px){ .container{ padding-inline: 2.5rem; } }

h1,h2,h3,h4{
  font-family:'Manrope',sans-serif;
  font-weight: 800;
  color: var(--color-ink);
  line-height:1.15;
  margin:0;
  letter-spacing:-0.01em;
}
h1{ font-size: clamp(2.4rem, 4.4vw + 1rem, 4.4rem); }
h2{ font-size: clamp(1.9rem, 2.6vw + 1rem, 2.85rem); }
h3{ font-size: clamp(1.25rem, 1vw + 1rem, 1.6rem); }
p{ margin:0; }
.text-soft{ color: var(--color-ink-soft); }
.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  color: var(--color-accent);
}
.eyebrow::before{ content:''; width:22px; height:2px; background:var(--color-accent); display:inline-block; }


.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.6rem;
  padding: .95rem 1.8rem;
  border-radius: var(--radius-sm);
  font-weight:700;
  font-size:.95rem;
  border:2px solid transparent;
  transition: background-color .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease), transform .25s var(--ease);
  min-height:48px;
  white-space:nowrap;
}
.btn--primary{ background: var(--color-accent); color:#fff; }
.btn--primary:hover{ background: var(--color-accent-dark); }
.btn--outline{ background:transparent; border-color: currentColor; color:inherit; }
.btn--outline:hover{ background: rgba(255,255,255,.12); }
.btn--dark{ background: var(--color-primary); color:#fff; }
.btn--dark:hover{ background: var(--color-primary-dark); }
.btn--block{ width:100%; }
.btn:active{ transform: translateY(1px); }


.site-header{
  position:fixed;
  top:0; left:0; right:0;
  z-index:100;
  padding: 1.1rem 0;
  transition: color .4s var(--ease), background-color .4s var(--ease);
  color: var(--color-bg);
}
.site-header[data-theme="light"]{ color: var(--color-ink); }
.site-header[data-theme="dark"]{ color: var(--color-bg); }
.site-header__inner{
  max-width:1240px;
  margin-inline:auto;
  padding-inline: 1.5rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
}
@media(min-width:768px){ .site-header__inner{ padding-inline: 2.5rem; } }
.site-header__logo{
  display:flex; align-items:center; gap:.65rem;
  font-weight:800; font-size:1.15rem; color:inherit;
}
.site-header__logo img{ width:38px; height:38px; }
.site-header__nav{ display:none; align-items:center; gap:2.1rem; }
@media(min-width:960px){ .site-header__nav{ display:flex; } }
.nav-link{
  font-weight:600; font-size:.95rem; color:inherit;
  position:relative; padding-bottom:4px;
  transition: opacity .25s var(--ease);
}
.nav-link::after{
  content:''; position:absolute; left:0; bottom:0; width:0; height:2px;
  background: var(--color-accent);
  transition: width .3s var(--ease);
}
.nav-link:hover::after{ width:100%; }
.nav-link--cta{
  background: var(--color-accent); color:#fff !important;
  padding:.6rem 1.2rem; border-radius: var(--radius-sm);
}
.nav-link--cta::after{ display:none; }
.nav-link--cta:hover{ background: var(--color-accent-dark); }

.site-header__toggle{
  display:flex; flex-direction:column; justify-content:center; gap:5px;
  width:46px; height:46px; background:transparent; border:none;
}
@media(min-width:960px){ .site-header__toggle{ display:none; } }
.site-header__toggle span{
  display:block; width:24px; height:2px; background: currentColor;
  transition: transform .3s var(--ease), opacity .3s var(--ease);
}


.mobile-menu{
  position:fixed; inset:0; z-index:200;
  display:grid; grid-template-columns: 1fr;
  visibility:hidden; opacity:0;
  transition: opacity .4s var(--ease), visibility .4s var(--ease);
}
@media(min-width:640px){ .mobile-menu{ grid-template-columns: 1.1fr .9fr; } }
.mobile-menu.is-open{ visibility:visible; opacity:1; }
.mobile-menu__panel{
  background: var(--color-primary);
  color: var(--color-bg);
  padding: 2rem 1.75rem;
  display:flex; flex-direction:column;
  overflow-y:auto;
}
.mobile-menu__top{ display:flex; justify-content:space-between; align-items:center; margin-bottom: 3rem; }
.mobile-menu__close{
  width:46px; height:46px; border-radius:50%;
  background: rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.2);
  color:#fff; font-size:1.2rem; display:flex; align-items:center; justify-content:center;
  transition: background-color .25s var(--ease);
}
.mobile-menu__close:hover{ background: rgba(255,255,255,.18); }
.accordion{ border-top:1px solid rgba(255,255,255,.14); }
.accordion:last-child{ border-bottom:1px solid rgba(255,255,255,.14); }
.accordion__trigger{
  width:100%; background:none; border:none; color:#fff;
  display:flex; align-items:center; justify-content:space-between;
  padding: 1.15rem 0; font-size:.85rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  opacity:.7;
}
.accordion__trigger i{ transition: transform .3s var(--ease); }
.accordion__trigger[aria-expanded="true"] i{ transform: rotate(45deg); }
.accordion__content{
  max-height:0; overflow:hidden;
  transition: max-height .4s var(--ease);
}
.accordion__content a{
  display:block; font-size: clamp(1.6rem, 4vw, 2.3rem); font-weight:800;
  padding: .5rem 0; color:#fff; opacity:.92;
  transition: color .25s var(--ease), opacity .25s var(--ease), padding-left .25s var(--ease);
}
.accordion__content a:hover{ color: var(--color-accent); padding-left:.5rem; }
.accordion__content .accordion__inner{ padding-bottom: 1.5rem; }
.mobile-menu__visual{
  position:relative; display:none;
  background: var(--color-primary-dark);
}
@media(min-width:640px){ .mobile-menu__visual{ display:block; } }
.mobile-menu__visual img{ width:100%; height:100%; object-fit:cover; opacity:.75; }
.mobile-menu__visual::after{
  content:''; position:absolute; inset:0;
  background: linear-gradient(160deg, rgba(29,53,87,.1), rgba(18,35,61,.75));
}
.mobile-menu__contact{ margin-top:auto; padding-top:2rem; font-size:.85rem; opacity:.75; }


.section{ padding: var(--space-6) 0; position:relative; }
.section--wide{ padding: var(--space-7) 0; }
.section--dark{ background: var(--color-primary); color: var(--color-bg); }
.section--alt{ background: var(--color-bg-alt); }
.section--accent{ background: var(--color-accent); color:#fff; }
.section-head{ max-width: 700px; margin-bottom: var(--space-5); }
.section-head--center{ margin-inline:auto; text-align:center; }

.gradient-fade{ height: 110px; width:100%; }
.gradient-fade--navy-cream{ background: linear-gradient(var(--color-primary), var(--color-bg)); }
.gradient-fade--cream-alt{ background: linear-gradient(var(--color-bg), var(--color-bg-alt)); }
.gradient-fade--alt-navy{ background: linear-gradient(var(--color-bg-alt), var(--color-primary)); }
.gradient-fade--navy-alt{ background: linear-gradient(var(--color-primary), var(--color-bg-alt)); }


.hero{
  position:relative;
  background: var(--color-primary);
  color:#fff;
  padding-top: 9rem;
  padding-bottom: 7rem;
  overflow:visible;
}
.hero__bg{ position:absolute; inset:0; z-index:0; }
.hero__bg img{ width:100%; height:100%; object-fit:cover; }
.hero__overlay{
  position:absolute; inset:0; z-index:1;
  background: linear-gradient(120deg, rgba(18,35,61,.94) 30%, rgba(18,35,61,.68));
}
.hero__inner{
  position:relative; z-index:2;
  display:grid; gap: 2.5rem;
  grid-template-columns: 1fr;
}
@media(min-width:900px){ .hero__inner{ grid-template-columns: 1.3fr .9fr; align-items:center; } }
.hero__title{ margin-top: 1rem;color:var(--color-accent);}
.hero__text{ margin-top:1.4rem; max-width:540px; font-size:1.05rem; color:rgba(250,247,241,.82); }
.hero__actions{ display:flex; flex-wrap:wrap; gap:1rem; margin-top:2.2rem; }
.hero__quote{
  background: var(--color-surface);
  color: var(--color-ink);
  border-radius: var(--radius-lg);
  padding: 2.1rem;
  box-shadow: var(--shadow-float);
  border-left: 5px solid var(--color-accent);
}
.hero__quote-text{ font-size:1.15rem; font-weight:600; line-height:1.55; }
.hero__quote-text::before{ content:'“'; color: var(--color-accent); font-size:2rem; line-height:0; display:inline-block; vertical-align:-10px; margin-right:2px;}
.hero__quote-author{ margin-top:1.1rem; font-size:.85rem; color: var(--color-ink-soft); font-weight:700; letter-spacing:.03em; }

.hero__cards{
  position:relative; z-index:3;
  display:grid; gap:1.25rem;
  grid-template-columns: repeat(1,minmax(0,1fr));
  margin-top: 3.5rem;
  transform: translateY(60%);
}
@media(min-width:640px){ .hero__cards{ grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media(min-width:1024px){ .hero__cards{ grid-template-columns: repeat(4,minmax(0,1fr)); } }


.card{
  background: var(--color-surface);
  border: 1px solid var(--color-line);
  border-radius: var(--radius-md);
  padding: 1.9rem;
  transition: border-color .3s var(--ease), background-color .3s var(--ease), transform .3s var(--ease);
}
.card--floating{
  box-shadow: var(--shadow-float-sm);
  border:none;
}
.card--floating .card__icon{
  width:52px; height:52px; border-radius: var(--radius-sm);
  background: var(--color-accent-soft); color: var(--color-accent-dark);
  display:flex; align-items:center; justify-content:center; font-size:1.3rem;
  margin-bottom:1.1rem;
}
.card--floating:hover{ transform: translateY(-6px); }
.card--featured{ background: var(--color-primary); color:#fff; border-color: var(--color-primary); }
.card--featured .text-soft{ color: rgba(250,247,241,.75); }
.card--compact{ padding:1.4rem; }
.card:hover{ border-color: var(--color-accent); }
.card__num{
  font-size:.8rem; font-weight:800; color: var(--color-accent);
  letter-spacing:.08em;
}
.card__media{ border-radius: var(--radius-md); overflow:hidden; margin-bottom:1.2rem; }
.card__media img{ width:100%; height:100%; object-fit:cover; aspect-ratio: 4/3; transition: transform .5s var(--ease); }
.card:hover .card__media img{ transform: scale(1.05); }

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


.splide__pagination__page{ background: var(--color-line); opacity:1; }
.splide__pagination__page.is-active{ background: var(--color-accent); transform:none; }
.splide__arrow{ background: var(--color-primary); opacity:1; }
.splide__arrow svg{ fill:#fff; }
.splide__arrow:hover{ background: var(--color-accent); }
.splide__arrow:disabled{ opacity:.25; }


.faq-card{
  background: var(--color-surface);
  border:1px solid var(--color-line);
  border-radius: var(--radius-md);
  overflow:hidden;
  transition: border-color .3s var(--ease);
}
.faq-card[open], .faq-card:hover{ border-color: var(--color-accent); }
.faq-card summary{
  list-style:none; cursor:pointer;
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding: 1.5rem 1.7rem; font-weight:700; font-size:1.02rem;
}
.faq-card summary::-webkit-details-marker{ display:none; }
.faq-card summary .faq-card__icon{
  flex-shrink:0; width:32px; height:32px; border-radius:50%;
  background: var(--color-accent-soft); color: var(--color-accent-dark);
  display:flex; align-items:center; justify-content:center;
  transition: transform .3s var(--ease), background-color .3s var(--ease), color .3s var(--ease);
}
.faq-card[open] summary .faq-card__icon{ transform: rotate(45deg); background: var(--color-accent); color:#fff; }
.faq-card__body{ padding: 0 1.7rem 1.6rem; color: var(--color-ink-soft); font-size:.98rem; }


.form-row{
  display:grid; gap:1rem;
  grid-template-columns: 1fr;
}
@media(min-width:900px){
  .form-row{ grid-template-columns: 1fr 1fr 1.4fr; align-items:start; }
}
.field label{ display:block; font-size:.8rem; font-weight:700; margin-bottom:.4rem; color: var(--color-ink-soft); }
.field input, .field textarea{
  width:100%; border: 1.5px solid var(--color-line); border-radius: var(--radius-sm);
  background: var(--color-surface); padding: .8rem 1rem; font-family:inherit; font-size:.95rem;
  color: var(--color-ink);
  transition: border-color .25s var(--ease), box-shadow .25s var(--ease);
  min-height:48px;
}
.field textarea{ resize:vertical; min-height:66px; }
.field input:focus, .field textarea:focus{
  outline:none; border-color: var(--color-accent); box-shadow: 0 0 0 4px var(--color-accent-soft);
}
.form-consent{ display:flex; align-items:flex-start; gap:.7rem; font-size:.85rem; color: var(--color-ink-soft); }
.form-consent input{ width:20px; height:20px; margin-top:2px; accent-color: var(--color-accent); flex-shrink:0; }
.form-bottom-row{ display:flex; flex-wrap:wrap; align-items:center; gap:1.3rem; justify-content:space-between; margin-top:1.4rem; }


.site-footer{ background: var(--color-primary-dark); color: rgba(250,247,241,.85); }
.stats-bar{
  border-bottom: 1px solid rgba(255,255,255,.1);
  display:grid; grid-template-columns: 1fr; gap:1.2rem;
  padding: 1.6rem 0;
}
@media(min-width:768px){ .stats-bar{ grid-template-columns: repeat(4,1fr); } }
.stats-bar__item{ font-size:.85rem; color: rgba(250,247,241,.65); }
.stats-bar__item span{ display:block; font-size:1.15rem; font-weight:800; color:#fff; margin-bottom:.15rem; }
.site-footer__main{ padding: var(--space-5) 0 var(--space-4); }
.footer-grid{ display:grid; gap:2.4rem; grid-template-columns:1fr; }
@media(min-width:768px){ .footer-grid{ grid-template-columns: 1.4fr 1fr 1fr 1.1fr; } }
.footer-grid h4{ color:#fff; font-size:.9rem; letter-spacing:.06em; text-transform:uppercase; margin-bottom:1.1rem; }
.footer-grid a{ display:block; font-size:.92rem; color: rgba(250,247,241,.65); padding:.35rem 0; transition: color .25s var(--ease); }
.footer-grid a:hover{ color: var(--color-accent); }
.footer-brand{ display:flex; align-items:center; gap:.6rem; font-weight:800; font-size:1.2rem; color:#fff; margin-bottom:1rem; }
.footer-brand img{ width:36px; height:36px; }
.site-footer__bottom{
  border-top:1px solid rgba(255,255,255,.1);
  padding: 1.4rem 0; font-size:.8rem; color: rgba(250,247,241,.5);
  display:flex; flex-wrap:wrap; gap:.8rem; justify-content:space-between;
}


.cookie-consent{
  position:fixed; left:1.25rem; bottom:1.25rem; z-index:300;
  width: 100%; max-width:360px;
  background: var(--color-surface);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-float);
  border:1px solid var(--color-line);
  padding: 1.5rem;
  transform: translateY(140%);
  opacity:0;
  transition: transform .5s var(--ease), opacity .5s var(--ease);
}
.cookie-consent.is-visible{ transform: translateY(0); opacity:1; }
.cookie-consent__title{ font-weight:800; font-size:1rem; display:flex; align-items:center; gap:.5rem; margin-bottom:.6rem; }
.cookie-consent__text{ font-size:.85rem; color: var(--color-ink-soft); margin-bottom:1rem; }
.cookie-consent__actions{ display:flex; flex-direction:column; gap:.6rem; }
.cookie-consent__link-row{ display:flex; justify-content:space-between; margin-top:.9rem; font-size:.78rem; }
.cookie-consent__link-row button{ background:none; border:none; color: var(--color-primary); font-weight:700; text-decoration:underline; padding:0; }
.cookie-consent__panel{ max-height:0; overflow:hidden; transition: max-height .4s var(--ease); }
.cookie-consent__panel.is-open{ max-height:400px; margin-top:1rem; }
.cookie-cat{ display:flex; align-items:flex-start; justify-content:space-between; gap:.8rem; padding:.7rem 0; border-top:1px solid var(--color-line); }
.cookie-cat:first-child{ border-top:none; }
.cookie-cat__label{ font-size:.85rem; font-weight:700; }
.cookie-cat__desc{ font-size:.76rem; color: var(--color-ink-faint); margin-top:.15rem; }
.cookie-cat input{ width:20px; height:20px; accent-color: var(--color-accent); margin-top:.2rem; }


.legal-body{ max-width: 820px; }
.legal-body h2, .legal-body h3{ margin-top:2.6rem; margin-bottom:1rem; }
.legal-body p{ margin-bottom:1.1rem; color: var(--color-ink-soft); font-size:1rem; }
.legal-body ul{ margin-bottom:1.1rem; }
.legal-body li{ margin-bottom:.6rem; color: var(--color-ink-soft); padding-left:1.4rem; position:relative; }
.legal-body li::before{ content:''; position:absolute; left:0; top:.65rem; width:7px; height:7px; background: var(--color-accent); border-radius:50%; }
.legal-term{ color: var(--color-accent-dark); font-weight:700; border-bottom: 2px dotted var(--color-accent); cursor:help; }
.legal-aside{
  background: var(--color-bg-alt);
  border-left: 4px solid var(--color-secondary);
  border-radius: var(--radius-sm);
  padding: 1.1rem 1.3rem;
  margin: 1.4rem 0;
  font-size:.9rem;
}
.legal-aside strong{ display:block; color: var(--color-secondary-dark); margin-bottom:.3rem; font-size:.82rem; text-transform:uppercase; letter-spacing:.06em; }
.legal-meta{
  display:inline-flex; align-items:center; gap:.6rem;
  background: var(--color-bg-alt); padding:.5rem 1rem; border-radius: var(--radius-sm);
  font-size:.82rem; font-weight:700; color: var(--color-ink-soft); margin-bottom:2rem;
}
.legal-clause{ counter-increment: clause; }
.legal-toc{ background: var(--color-bg-alt); border-radius: var(--radius-md); padding:1.5rem 1.7rem; margin-bottom:2.5rem; }
.legal-toc a{ display:block; padding:.3rem 0; font-size:.9rem; color: var(--color-primary); font-weight:600; }
.legal-toc a:hover{ color: var(--color-accent); }


.thanks-wrap{
  min-height: 70vh;
  display:flex; align-items:center; justify-content:center;
  padding: var(--space-6) 1.5rem;
  background:
    radial-gradient(circle at 15% 20%, rgba(210,96,31,.08), transparent 45%),
    radial-gradient(circle at 85% 80%, rgba(29,53,87,.08), transparent 45%),
    var(--color-bg-alt);
}
.thanks-card{
  background: var(--color-surface);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-float);
  padding: 3.2rem 2.6rem;
  max-width: 520px; width:100%;
  text-align:center;
}
.thanks-card__icon{
  width:76px; height:76px; border-radius:50%;
  background: var(--color-secondary-soft); color: var(--color-secondary-dark);
  display:flex; align-items:center; justify-content:center; font-size:1.9rem;
  margin: 0 auto 1.6rem;
}
.thanks-card p{ color: var(--color-ink-soft); margin: 1.1rem 0 1.9rem; }


.tag{
  display:inline-flex; align-items:center; gap:.4rem;
  font-size:.75rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase;
  padding:.35rem .8rem; border-radius: 999px;
  background: var(--color-accent-soft); color: var(--color-accent-dark);
}
.tag--green{ background: var(--color-secondary-soft); color: var(--color-secondary-dark); }
.divider{ height:1px; background: var(--color-line); margin: var(--space-4) 0; }
.img-frame{ border-radius: var(--radius-lg); overflow:hidden; }
.img-frame img{ width:100%; height:100%; object-fit:cover; }
.news-item{
  display:flex; gap:1.2rem; padding:1.4rem 0; border-top:1px solid var(--color-line);
}
.news-item:first-child{ border-top:none; padding-top:0; }
.news-item__date{ flex-shrink:0; width:76px; font-size:.78rem; font-weight:800; color: var(--color-accent-dark); letter-spacing:.04em; }
.map-frame{ border-radius: var(--radius-lg); overflow:hidden; border:1px solid var(--color-line); }
.map-frame iframe{ width:100%; height:100%; border:0; display:block; }

@media(min-width:960px){
  .hero__cards{ transform: translateY(45%); }
}