/* ==========================================================================
   Frivento — Editorial Modern stylesheet
   ========================================================================== */


:root{
  --Color-Ink: #1c2530;
  --Color-InkSoft: #3a4552;
  --Color-InkFaint: #6b7684;
  --Color-Clay: #bf5b3a;
  --Color-ClayDark: #9c4a2e;
  --Color-ClaySoft: #e8b8a2;
  --Color-Gold: #c99a4a;
  --Color-GoldSoft: #f0dcb2;
  --Color-Paper: #faf6ef;
  --Color-Cream: #f2ece0;
  --Color-White: #fffdf8;
  --Color-Border: rgba(28,37,48,0.12);
  --Color-BorderSoft: rgba(28,37,48,0.07);

  --Shadow-sm: 0 1px 2px rgba(28,37,48,0.06), 0 1px 1px rgba(28,37,48,0.04);
  --Shadow-md: 0 8px 24px -8px rgba(28,37,48,0.18), 0 2px 6px rgba(28,37,48,0.06);
  --Shadow-lg: 0 24px 60px -16px rgba(28,37,48,0.28), 0 4px 12px rgba(28,37,48,0.08);
  --Shadow-clay: 0 12px 30px -10px rgba(191,91,58,0.35);

  --Radius-sm: 8px;
  --Radius-md: 16px;
  --Radius-lg: 26px;
  --Radius-pill: 999px;

  --Space-1: 0.4rem;
  --Space-2: 0.8rem;
  --Space-3: 1.2rem;
  --Space-4: 1.8rem;
  --Space-5: 2.6rem;
  --Space-6: 4rem;
  --Space-7: 6rem;
  --Space-8: 8.5rem;

  --Font-Head: 'Vollkorn', serif;
  --Font-Body: 'Work Sans', sans-serif;

  --Transition: 0.25s cubic-bezier(.4,0,.2,1);
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--Font-Body);
  color:var(--Color-Ink);
  background:var(--Color-Paper);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block;border-radius:var(--Radius-md);}
a{color:inherit;text-decoration:none;}
ul{list-style:none;margin:0;padding:0;}
h1,h2,h3,h4{font-family:var(--Font-Head);color:var(--Color-Ink);margin:0 0 0.6em;line-height:1.15;font-weight:700;}
p{margin:0 0 1em;}
button{font-family:inherit;cursor:pointer;border:none;background:none;}
input,textarea{font-family:inherit;font-size:1rem;}

.Section-eyebrow{
  font-size:0.8rem; letter-spacing:0.12em; text-transform:uppercase;
  color:var(--Color-Clay); font-weight:600; margin-bottom:0.6em;
}
.Section-heading{
  font-size:clamp(1.7rem, 1.2rem + 2vw, 2.6rem);
  max-width:34ch;
}
.Section-text{
  max-width:62ch; color:var(--Color-InkSoft); font-size:1.02rem;
}


.Button{
  display:inline-flex;align-items:center;justify-content:center;gap:0.5em;
  padding:0.9em 1.7em;border-radius:var(--Radius-pill);
  font-weight:600;font-size:0.98rem;transition:transform var(--Transition), box-shadow var(--Transition), background var(--Transition), color var(--Transition);
  min-height:48px;white-space:nowrap;
}
.Button--primary{
  background:var(--Color-Clay);color:var(--Color-White);box-shadow:var(--Shadow-clay);
}
.Button--primary:hover{background:var(--Color-ClayDark);transform:translateY(-2px);box-shadow:0 16px 34px -10px rgba(191,91,58,0.45);}
.Button--outline{
  background:transparent;color:var(--Color-Ink);border:1.5px solid var(--Color-Border);
}
.Button--outline:hover{border-color:var(--Color-Clay);color:var(--Color-Clay);transform:translateY(-2px);}
.Button--light{background:var(--Color-White);color:var(--Color-Ink);box-shadow:var(--Shadow-md);}
.Button--light:hover{background:var(--Color-Cream);transform:translateY(-2px);}


.SiteHeader{
  position:sticky;top:0;z-index:200;background:rgba(250,246,239,0.9);backdrop-filter:blur(10px);
  border-bottom:1px solid transparent;
}
.SiteHeader::after{
  content:"";position:absolute;left:50%;bottom:-1px;width:100%;height:1px;
  background:var(--Color-Border);transform:translateX(-50%) scaleX(0);transition:transform 0.4s ease;
}
.SiteHeader.is-sealed::after{transform:translateX(-50%) scaleX(1);}
.SiteHeader-inner{
  max-width:1280px;margin:0 auto;padding:0.9rem 1.5rem;
  display:flex;align-items:center;gap:1.5rem;
}
.SiteHeader-logo{display:flex;align-items:center;gap:0.6rem;margin-right:auto;}
.SiteHeader-logoText{font-family:var(--Font-Head);font-weight:700;font-size:1.35rem;color:var(--Color-Ink);}
.SiteHeader-nav{display:none;align-items:center;gap:0.3rem;background:var(--Color-Cream);padding:0.35rem;border-radius:var(--Radius-pill);}
.SiteHeader-navLink{
  padding:0.55em 1.1em;border-radius:var(--Radius-pill);font-size:0.94rem;font-weight:500;
  color:var(--Color-InkSoft);transition:background var(--Transition), color var(--Transition);
}
.SiteHeader-navLink:hover{color:var(--Color-Ink);}
.SiteHeader-navLink.is-active{background:var(--Color-Ink);color:var(--Color-White);}
.SiteHeader-phone{
  display:none;align-items:center;gap:0.5em;font-weight:600;font-size:0.92rem;
  padding:0.6em 1.2em;border-radius:var(--Radius-pill);border:1.5px solid var(--Color-Border);
  transition:border-color var(--Transition), color var(--Transition);
}
.SiteHeader-phone:hover{border-color:var(--Color-Clay);color:var(--Color-Clay);}
.SiteHeader-burger{
  width:46px;height:46px;border-radius:var(--Radius-pill);display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:5px;background:var(--Color-Cream);
  transition:background var(--Transition);
}
.SiteHeader-burger span{width:20px;height:2px;background:var(--Color-Ink);border-radius:2px;transition:transform var(--Transition), opacity var(--Transition);}
.SiteHeader-burger:hover{background:var(--Color-GoldSoft);}

@media(min-width:960px){
  .SiteHeader-nav{display:flex;}
  .SiteHeader-phone{display:inline-flex;}
  .SiteHeader-burger{display:none;}
}


.MobileCurtain{
  position:fixed;inset:0;z-index:500;background:var(--Color-Ink);
  transform:translateY(-100%);transition:transform 0.55s cubic-bezier(.77,0,.18,1);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2.5rem;
}
.MobileCurtain.is-open{transform:translateY(0);}
.MobileCurtain-nav{display:flex;flex-direction:column;align-items:center;gap:1.4rem;}
.MobileCurtain-link{
  font-family:var(--Font-Head);font-size:1.9rem;color:var(--Color-White);font-weight:600;
  opacity:0;transform:translateY(-24px);transition:transform 0.5s ease, opacity 0.5s ease;
}
.MobileCurtain.is-open .MobileCurtain-link{opacity:1;transform:translateY(0);}
.MobileCurtain.is-open .MobileCurtain-link:nth-child(1){transition-delay:0.1s;}
.MobileCurtain.is-open .MobileCurtain-link:nth-child(2){transition-delay:0.18s;}
.MobileCurtain.is-open .MobileCurtain-link:nth-child(3){transition-delay:0.26s;}
.MobileCurtain.is-open .MobileCurtain-link:nth-child(4){transition-delay:0.34s;}
.MobileCurtain.is-open .MobileCurtain-link:nth-child(5){transition-delay:0.42s;}
.MobileCurtain-link:hover{color:var(--Color-Gold);}
.MobileCurtain-close{
  position:absolute;bottom:2.5rem;color:var(--Color-Cream);font-size:0.95rem;font-weight:600;
  display:flex;align-items:center;gap:0.5em;padding:0.8em 1.6em;border:1.5px solid rgba(255,255,255,0.3);
  border-radius:var(--Radius-pill);transition:border-color var(--Transition), color var(--Transition);
}
.MobileCurtain-close:hover{border-color:var(--Color-Gold);color:var(--Color-Gold);}
@media(min-width:960px){.MobileCurtain{display:none;}}


.PageHero{position:relative;overflow:hidden;padding:var(--Space-6) 1.5rem var(--Space-7);}
.PageHero-shape{position:absolute;border-radius:50%;opacity:0.35;filter:blur(2px);z-index:0;}
.PageHero-shape--one{width:280px;height:280px;background:var(--Color-ClaySoft);top:-60px;left:-80px;}
.PageHero-shape--two{width:200px;height:200px;background:var(--Color-GoldSoft);bottom:-40px;right:8%;border-radius:38% 62% 60% 40%/40% 45% 55% 60%;}
.PageHero-shape--three{width:120px;height:120px;background:var(--Color-Clay);opacity:0.14;top:30%;right:20%;border-radius:30% 70% 55% 45%/55% 40% 60% 45%;}
.PageHero-inner{
  position:relative;z-index:1;max-width:1280px;margin:0 auto;
  display:grid;grid-template-columns:1fr;gap:var(--Space-5);align-items:center;
}
.PageHero-inner--single{grid-template-columns:1fr;max-width:900px;}
.PageHero-eyebrow{font-size:0.85rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--Color-Clay);font-weight:600;margin-bottom:0.8em;}
.PageHero-heading{font-size:clamp(2.1rem, 1.5rem + 3.4vw, 3.6rem);max-width:16ch;}
.PageHero-text{font-size:1.08rem;color:var(--Color-InkSoft);max-width:52ch;}
.PageHero-actions{display:flex;flex-wrap:wrap;gap:1rem;margin:1.6rem 0;}
.PageHero-meta{display:flex;flex-wrap:wrap;gap:1.6rem;margin-top:1.2rem;}
.PageHero-metaItem{display:flex;align-items:center;gap:0.6em;font-size:0.9rem;font-weight:600;color:var(--Color-InkSoft);}
.PageHero-metaItem i{color:var(--Color-Clay);}
.PageHero-media img{width:100%;aspect-ratio:4/3;object-fit:cover;box-shadow:var(--Shadow-lg);}
.PageHero--compact{padding:var(--Space-5) 1.5rem var(--Space-6);}

@media(min-width:900px){
  .PageHero-inner{grid-template-columns:1.1fr 0.9fr;}
}


.Intro{padding:var(--Space-6) 1.5rem;}
.Intro-inner{max-width:760px;margin:0 auto;text-align:left;}
.Intro-lead{font-family:var(--Font-Head);font-size:clamp(1.3rem,1.1rem+1vw,1.7rem);color:var(--Color-Ink);font-weight:600;}
.Intro-quote{
  font-family:var(--Font-Head);font-style:italic;font-size:1.3rem;color:var(--Color-ClayDark);
  border-left:3px solid var(--Color-Clay);padding-left:1.4rem;margin:2rem 0;
}
.Intro-text{color:var(--Color-InkSoft);}


.Bento{padding:var(--Space-6) 1.5rem;}
.Bento-header{max-width:1280px;margin:0 auto var(--Space-5);}
.BentoGrid{
  max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1fr;gap:1.4rem;
}
.BentoGrid-item{
  background:var(--Color-White);border-radius:var(--Radius-lg);overflow:hidden;
  box-shadow:var(--Shadow-md);border:1px solid var(--Color-BorderSoft);
  transition:transform var(--Transition), box-shadow var(--Transition);
  display:flex;flex-direction:column;
}
.BentoGrid-item:hover{transform:translateY(-6px);box-shadow:var(--Shadow-lg);}
.BentoGrid-item img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:0;}
.BentoGrid-itemBody{padding:1.4rem 1.5rem 1.7rem;}
.BentoGrid-itemBody h3{font-size:1.2rem;margin-bottom:0.4em;}
.BentoGrid-itemBody p{font-size:0.95rem;color:var(--Color-InkSoft);margin:0;}

@media(min-width:720px){
  .BentoGrid{grid-template-columns:repeat(2,1fr);}
  .BentoGrid-item.is-wide{grid-column:span 2;}
}
@media(min-width:1080px){
  .BentoGrid{grid-template-columns:repeat(4,1fr);grid-auto-rows:1fr;}
  .BentoGrid-item.is-large{grid-column:span 2;grid-row:span 2;}
  .BentoGrid-item.is-wide{grid-column:span 2;grid-row:span 1;}
  .BentoGrid-item.is-large img{aspect-ratio:auto;height:55%;flex:1;}
  .BentoGrid-item.is-large{display:flex;flex-direction:column;}
}


.Comparison{padding:var(--Space-6) 1.5rem;}
.Comparison-header{max-width:1280px;margin:0 auto var(--Space-4);}
.Comparison--compact{padding-top:var(--Space-4);}
.ComparisonTable-wrap{max-width:1100px;margin:0 auto;overflow-x:auto;border-radius:var(--Radius-lg);box-shadow:var(--Shadow-md);}
.ComparisonTable{width:100%;border-collapse:collapse;background:var(--Color-White);min-width:560px;}
.ComparisonTable th,.ComparisonTable td{padding:1rem 1.2rem;text-align:left;border-bottom:1px solid var(--Color-BorderSoft);font-size:0.95rem;}
.ComparisonTable thead th{font-family:var(--Font-Head);font-size:1.05rem;background:var(--Color-Cream);position:relative;}
.ComparisonTable th.is-recommended, .ComparisonTable tr.is-recommended{background:rgba(191,91,58,0.06);}
.ComparisonTable-badge{
  display:inline-block;margin-left:0.5em;background:var(--Color-Clay);color:var(--Color-White);
  font-size:0.68rem;letter-spacing:0.05em;text-transform:uppercase;padding:0.25em 0.7em;border-radius:var(--Radius-pill);
  vertical-align:middle;
}
.ComparisonTable td i.fa-check{color:var(--Color-Clay);}
.ComparisonTable td i.fa-minus{color:var(--Color-InkFaint);}
.Comparison-note{max-width:1100px;margin:1.2rem auto 0;color:var(--Color-InkFaint);font-size:0.88rem;}


.TwoCol{padding:var(--Space-6) 1.5rem;}
.TwoCol-header{max-width:900px;margin:0 auto var(--Space-5);}
.TwoCol-grid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1fr;gap:1.6rem;}
.TwoCol-card{
  background:var(--Color-White);border-radius:var(--Radius-lg);padding:2rem;box-shadow:var(--Shadow-sm);
  border:1px solid var(--Color-BorderSoft);
}
.TwoCol-card--accent{border-color:rgba(191,91,58,0.3);box-shadow:var(--Shadow-md);}
.TwoCol-card h3{display:flex;align-items:center;gap:0.5em;font-size:1.3rem;color:var(--Color-ClayDark);}
.TwoCol-card ul{display:flex;flex-direction:column;gap:0.8rem;}
.TwoCol-card li{position:relative;padding-left:1.3em;color:var(--Color-InkSoft);font-size:0.96rem;}
.TwoCol-card li::before{content:"";position:absolute;left:0;top:0.55em;width:6px;height:6px;border-radius:50%;background:var(--Color-Clay);}

@media(min-width:860px){.TwoCol-grid{grid-template-columns:1fr 1fr;}}


.Process{padding:var(--Space-6) 1.5rem;background:var(--Color-Cream);}
.Process-header{max-width:900px;margin:0 auto var(--Space-5);}
.Process-grid{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1fr;gap:1.6rem;}
.Process-step{background:var(--Color-White);padding:1.8rem;border-radius:var(--Radius-md);box-shadow:var(--Shadow-sm);}
.Process-number{font-family:var(--Font-Head);font-size:2.2rem;color:var(--Color-ClaySoft);font-weight:700;}
.Process-step h3{font-size:1.15rem;margin-top:0.3em;}
.Process-step p{color:var(--Color-InkSoft);font-size:0.95rem;margin:0;}
@media(min-width:720px){.Process-grid{grid-template-columns:repeat(2,1fr);}}
@media(min-width:1080px){.Process-grid{grid-template-columns:repeat(4,1fr);}}


.Gallery{padding:var(--Space-6) 1.5rem;}
.Gallery-header{max-width:1280px;margin:0 auto var(--Space-4);}
.Gallery .splide{max-width:1280px;margin:0 auto;}
.Gallery-item{border-radius:var(--Radius-md);overflow:hidden;box-shadow:var(--Shadow-sm);background:var(--Color-White);}
.Gallery-item img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:0;}
.Gallery-item figcaption{padding:0.9rem 1rem;font-size:0.9rem;color:var(--Color-InkSoft);font-weight:500;}
.Gallery-cta{max-width:1280px;margin:2.4rem auto 0;text-align:center;}
.splide__pagination__page{background:var(--Color-Border);}
.splide__pagination__page.is-active{background:var(--Color-Clay);transform:scale(1.2);}
.splide__arrow{background:var(--Color-White)!important;box-shadow:var(--Shadow-sm);}
.splide__arrow svg{fill:var(--Color-Ink)!important;}


.Area{padding:var(--Space-6) 1.5rem;background:var(--Color-Ink);color:var(--Color-Cream);}
.Area-inner{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1fr;gap:var(--Space-5);align-items:center;}
.Area .Section-eyebrow{color:var(--Color-Gold);}
.Area .Section-heading{color:var(--Color-White);}
.Area .Section-text{color:rgba(250,246,239,0.75);}
.Area-tags{display:flex;flex-wrap:wrap;gap:0.6rem;margin-top:1.2rem;}
.Area-tags span{
  padding:0.5em 1.1em;border:1px solid rgba(255,255,255,0.25);border-radius:var(--Radius-pill);
  font-size:0.85rem;font-weight:500;transition:border-color var(--Transition), background var(--Transition);
}
.Area-tags span:hover{border-color:var(--Color-Gold);background:rgba(201,154,74,0.12);}
.Area-cta{background:rgba(255,255,255,0.06);padding:2rem;border-radius:var(--Radius-lg);border:1px solid rgba(255,255,255,0.1);}
.Area-cta h3{color:var(--Color-White);font-size:1.4rem;}
.Area-cta p{color:rgba(250,246,239,0.75);}
.Area--contact{background:var(--Color-Cream);color:var(--Color-Ink);}
.Area--contact .Section-eyebrow{color:var(--Color-Clay);}
.Area--contact .Section-heading{color:var(--Color-Ink);}
.Area--contact .Section-text{color:var(--Color-InkSoft);}
.Area--contact .Area-tags span{border-color:var(--Color-Border);color:var(--Color-Ink);}
.Area--contact .Area-tags span:hover{border-color:var(--Color-Clay);background:rgba(191,91,58,0.08);}
@media(min-width:900px){.Area-inner{grid-template-columns:1.3fr 0.9fr;}}


.AboutSplit{max-width:1280px;margin:0 auto;padding:var(--Space-6) 1.5rem;display:grid;grid-template-columns:1fr;gap:var(--Space-5);align-items:center;}
.AboutSplit-media img{width:100%;aspect-ratio:4/3;object-fit:cover;box-shadow:var(--Shadow-lg);}
.AboutSplit-list{display:grid;grid-template-columns:1fr;gap:0.9rem;margin-top:1.4rem;}
.AboutSplit-listItem{display:flex;align-items:center;gap:0.8em;font-size:0.94rem;font-weight:500;color:var(--Color-InkSoft);}
.AboutSplit-listItem i{color:var(--Color-Clay);width:20px;text-align:center;}
@media(min-width:900px){.AboutSplit{grid-template-columns:0.85fr 1.15fr;}.AboutSplit-list{grid-template-columns:1fr 1fr;}}

.Values{padding:var(--Space-6) 1.5rem;background:var(--Color-Cream);}
.Values-header{max-width:900px;margin:0 auto var(--Space-5);}
.Values-grid{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1fr;gap:1.4rem;}
.Values-card{background:var(--Color-White);padding:1.8rem;border-radius:var(--Radius-md);box-shadow:var(--Shadow-sm);transition:transform var(--Transition), box-shadow var(--Transition);}
.Values-card:hover{transform:translateY(-4px);box-shadow:var(--Shadow-md);}
.Values-icon{display:inline-flex;width:46px;height:46px;border-radius:50%;background:rgba(191,91,58,0.1);color:var(--Color-Clay);align-items:center;justify-content:center;font-size:1.1rem;margin-bottom:0.9rem;}
.Values-card h3{font-size:1.1rem;}
.Values-card p{color:var(--Color-InkSoft);font-size:0.93rem;margin:0;}
@media(min-width:720px){.Values-grid{grid-template-columns:repeat(2,1fr);}}
@media(min-width:1080px){.Values-grid{grid-template-columns:repeat(3,1fr);}}


.Cta{padding:var(--Space-6) 1.5rem;background:linear-gradient(135deg, var(--Color-Clay), var(--Color-ClayDark));color:var(--Color-White);text-align:center;}
.Cta-inner{max-width:640px;margin:0 auto;}
.Cta-inner h2{color:var(--Color-White);font-size:clamp(1.5rem,1.2rem+1.5vw,2.1rem);}
.Cta-inner p{color:rgba(255,253,248,0.85);}


.Gallery--wide{background:var(--Color-Cream);}
.PortfolioGrid{padding:var(--Space-6) 1.5rem;}
.PortfolioGrid-header{max-width:900px;margin:0 auto var(--Space-5);}
.PortfolioGrid-cards{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1fr;gap:1.4rem;}
.PortfolioGrid-card{background:var(--Color-White);border-radius:var(--Radius-lg);overflow:hidden;box-shadow:var(--Shadow-sm);transition:transform var(--Transition), box-shadow var(--Transition);}
.PortfolioGrid-card:hover{transform:translateY(-6px);box-shadow:var(--Shadow-md);}
.PortfolioGrid-card img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:0;}
.PortfolioGrid-card h3{font-size:1.1rem;margin:1rem 1.3rem 0.4rem;}
.PortfolioGrid-card p{font-size:0.92rem;color:var(--Color-InkSoft);margin:0 1.3rem 1.4rem;}
@media(min-width:860px){.PortfolioGrid-cards{grid-template-columns:repeat(3,1fr);}}


.Steps{padding:var(--Space-6) 1.5rem;background:var(--Color-Cream);}
.Steps-header{max-width:900px;margin:0 auto var(--Space-5);}
.Steps-grid{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1fr;gap:1.4rem;}
.Steps-card{background:var(--Color-White);padding:1.8rem;border-radius:var(--Radius-md);box-shadow:var(--Shadow-sm);position:relative;}
.Steps-number{
  display:inline-flex;width:40px;height:40px;border-radius:50%;background:var(--Color-Ink);color:var(--Color-White);
  align-items:center;justify-content:center;font-family:var(--Font-Head);font-weight:700;margin-bottom:0.8rem;
}
.Steps-card h3{font-size:1.08rem;}
.Steps-card p{color:var(--Color-InkSoft);font-size:0.92rem;margin:0;}
@media(min-width:720px){.Steps-grid{grid-template-columns:repeat(2,1fr);}}
@media(min-width:1080px){.Steps-grid{grid-template-columns:repeat(4,1fr);}}

.Faq{padding:var(--Space-6) 1.5rem;}
.Faq-header{max-width:900px;margin:0 auto var(--Space-5);}
.Faq-grid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1fr;gap:1.2rem;}
.Faq-item{background:var(--Color-White);padding:1.6rem 1.8rem;border-radius:var(--Radius-md);border:1px solid var(--Color-BorderSoft);}
.Faq-item h3{font-size:1.05rem;}
.Faq-item p{color:var(--Color-InkSoft);font-size:0.93rem;margin:0;}
@media(min-width:860px){.Faq-grid{grid-template-columns:repeat(2,1fr);}}


.ContactLayout{max-width:1280px;margin:0 auto;padding:var(--Space-5) 1.5rem var(--Space-6);display:grid;grid-template-columns:1fr;gap:2rem;}
.ContactInfo-card{background:var(--Color-White);border-radius:var(--Radius-lg);padding:1.8rem;box-shadow:var(--Shadow-sm);margin-bottom:1.4rem;}
.ContactInfo-card h3{font-size:1.15rem;}
.ContactInfo-card p{display:flex;gap:0.6em;align-items:flex-start;font-size:0.94rem;color:var(--Color-InkSoft);}
.ContactInfo-card p i{color:var(--Color-Clay);margin-top:0.2em;}
.ContactInfo-note{font-size:0.85rem;color:var(--Color-InkFaint);border-top:1px solid var(--Color-BorderSoft);padding-top:0.9rem;margin-top:0.5rem;}
.ContactInfo-map{border-radius:var(--Radius-lg);overflow:hidden;box-shadow:var(--Shadow-sm);}
.ContactInfo-map iframe{display:block;}
@media(min-width:960px){.ContactLayout{grid-template-columns:1.2fr 0.9fr;}}


.AccordionForm{background:var(--Color-White);border-radius:var(--Radius-lg);box-shadow:var(--Shadow-md);overflow:hidden;border:1px solid var(--Color-BorderSoft);}
.AccordionForm-section{border-bottom:1px solid var(--Color-BorderSoft);}
.AccordionForm-section:last-child{border-bottom:none;}
.AccordionForm-trigger{
  width:100%;display:flex;align-items:center;justify-content:space-between;
  padding:1.3rem 1.6rem;font-weight:600;font-size:1.02rem;color:var(--Color-Ink);
  transition:background var(--Transition);
}
.AccordionForm-trigger:hover{background:var(--Color-Cream);}
.AccordionForm-num{
  display:inline-flex;width:26px;height:26px;border-radius:50%;background:var(--Color-Ink);color:var(--Color-White);
  font-size:0.8rem;align-items:center;justify-content:center;margin-right:0.7em;
}
.AccordionForm-section.is-open .AccordionForm-trigger .fa-chevron-down{transform:rotate(180deg);}
.AccordionForm-trigger i{transition:transform var(--Transition);color:var(--Color-InkFaint);}
.AccordionForm-panel{max-height:0;overflow:hidden;transition:max-height 0.4s ease, padding var(--Transition);padding:0 1.6rem;}
.AccordionForm-section.is-open .AccordionForm-panel{max-height:600px;padding:0.4rem 1.6rem 1.8rem;}
.AccordionForm-field{margin-bottom:1.1rem;}
.AccordionForm-field label{display:block;font-size:0.88rem;font-weight:600;margin-bottom:0.4em;color:var(--Color-InkSoft);}
.AccordionForm-field input,.AccordionForm-field textarea{
  width:100%;padding:0.85em 1em;border-radius:var(--Radius-sm);border:1.5px solid var(--Color-Border);
  background:var(--Color-Paper);transition:border-color var(--Transition), box-shadow var(--Transition);resize:vertical;
}
.AccordionForm-field input:focus,.AccordionForm-field textarea:focus{
  outline:none;border-color:var(--Color-Clay);box-shadow:0 0 0 3px rgba(191,91,58,0.15);
}
.AccordionForm-checkbox{display:flex;align-items:flex-start;gap:0.7em;font-size:0.9rem;color:var(--Color-InkSoft);margin-bottom:1.3rem;cursor:pointer;}
.AccordionForm-checkbox input{margin-top:0.25em;width:20px;height:20px;accent-color:var(--Color-Clay);flex-shrink:0;}
.AccordionForm-submit{width:100%;}


.LegalPage{padding:var(--Space-6) 1.5rem var(--Space-7);}
.LegalPage-inner{max-width:800px;margin:0 auto;}
.LegalPage-updated{color:var(--Color-Clay);font-weight:600;font-size:0.88rem;letter-spacing:0.04em;text-transform:uppercase;}
.LegalPage-heading{font-size:clamp(1.9rem,1.5rem+2vw,2.6rem);margin-top:0.4rem;}
.LegalPage-intro{font-size:1.05rem;color:var(--Color-InkSoft);margin-bottom:2rem;}
.LegalPage h2{font-size:1.25rem;margin-top:2.2rem;color:var(--Color-ClayDark);}
.LegalPage p{color:var(--Color-InkSoft);font-size:0.98rem;}


.ThanksPage{max-width:640px;margin:0 auto;padding:var(--Space-7) 1.5rem;text-align:center;}
.ThanksPage-envelope{display:flex;justify-content:center;margin-bottom:2.6rem;}
.Envelope{position:relative;width:160px;height:110px;}
.Envelope-body{
  position:absolute;inset:0;background:var(--Color-Clay);border-radius:10px;box-shadow:var(--Shadow-md);z-index:1;
}
.Envelope-flap{
  position:absolute;top:0;left:0;width:100%;height:0;border-left:80px solid transparent;border-right:80px solid transparent;
  border-top:60px solid var(--Color-ClayDark);z-index:3;transform-origin:top center;
  animation:flapOpen 1.8s ease forwards;
}
.Envelope-letter{
  position:absolute;left:20px;bottom:10px;width:120px;height:80px;background:var(--Color-White);border-radius:6px;
  box-shadow:var(--Shadow-sm);z-index:2;transform:translateY(0);
  animation:letterSlide 1.8s ease forwards;
}
@keyframes flapOpen{
  0%{transform:rotateX(0deg);}
  40%{transform:rotateX(0deg);}
  100%{transform:rotateX(180deg);}
}
@keyframes letterSlide{
  0%{transform:translateY(10px);}
  50%{transform:translateY(10px);}
  100%{transform:translateY(-64px);}
}
.ThanksPage-heading{font-size:clamp(1.6rem,1.3rem+1.4vw,2.2rem);}
.ThanksPage-text{color:var(--Color-InkSoft);margin-bottom:2rem;}


.CookieConsent{
  position:fixed;top:1.4rem;left:1.4rem;z-index:900;width:min(320px, 88vw);
  background:var(--Color-White);border-radius:var(--Radius-md);box-shadow:var(--Shadow-lg);
  padding:1.3rem 1.4rem;border:1px solid var(--Color-BorderSoft);
  transform:translateX(-140%);transition:transform 0.6s cubic-bezier(.4,0,.2,1);
}
.CookieConsent.is-visible{transform:translateX(0);}
.CookieConsent-icon{width:36px;height:36px;border-radius:50%;background:rgba(191,91,58,0.12);color:var(--Color-Clay);display:flex;align-items:center;justify-content:center;margin-bottom:0.7rem;font-size:0.95rem;}
.CookieConsent-text{font-size:0.92rem;font-weight:600;margin-bottom:0.2rem;}
.CookieConsent-sub{font-size:0.8rem;color:var(--Color-InkFaint);margin-bottom:1rem;}
.CookieConsent-actions{display:flex;gap:0.6rem;}
.CookieConsent-btn{
  flex:1;padding:0.6em 0.8em;border-radius:var(--Radius-pill);font-size:0.82rem;font-weight:600;
  transition:background var(--Transition), color var(--Transition), border-color var(--Transition);
}
.CookieConsent-btn--ghost{border:1.5px solid var(--Color-Border);color:var(--Color-InkSoft);}
.CookieConsent-btn--ghost:hover{border-color:var(--Color-Clay);color:var(--Color-Clay);}
.CookieConsent-btn--solid{background:var(--Color-Ink);color:var(--Color-White);}
.CookieConsent-btn--solid:hover{background:var(--Color-Clay);}

.CookieModal{
  position:fixed;inset:0;z-index:950;background:rgba(28,37,48,0.55);display:none;
  align-items:center;justify-content:center;padding:1.5rem;
}
.CookieModal.is-visible{display:flex;}
.CookieModal-panel{
  background:var(--Color-White);border-radius:var(--Radius-lg);padding:2rem;max-width:460px;width:100%;
  box-shadow:var(--Shadow-lg);position:relative;max-height:88vh;overflow-y:auto;
}
.CookieModal-close{position:absolute;top:1.2rem;right:1.3rem;font-size:1.6rem;color:var(--Color-InkFaint);line-height:1;transition:color var(--Transition);}
.CookieModal-close:hover{color:var(--Color-Clay);}
.CookieModal-title{font-size:1.35rem;margin-bottom:0.5rem;}
.CookieModal-text{font-size:0.9rem;color:var(--Color-InkSoft);margin-bottom:1.4rem;}
.CookieModal-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:0.9rem 0;border-top:1px solid var(--Color-BorderSoft);}
.CookieModal-row div{display:flex;flex-direction:column;gap:0.15rem;}
.CookieModal-row strong{font-size:0.94rem;}
.CookieModal-row span{font-size:0.8rem;color:var(--Color-InkFaint);}
.CookieModal-switch{position:relative;width:44px;height:26px;flex-shrink:0;}
.CookieModal-switch input{opacity:0;width:0;height:0;}
.CookieModal-switch span{position:absolute;inset:0;background:var(--Color-Border);border-radius:var(--Radius-pill);transition:background var(--Transition);}
.CookieModal-switch span::before{content:"";position:absolute;width:20px;height:20px;left:3px;top:3px;background:var(--Color-White);border-radius:50%;transition:transform var(--Transition);box-shadow:var(--Shadow-sm);}
.CookieModal-switch input:checked + span{background:var(--Color-Clay);}
.CookieModal-switch input:checked + span::before{transform:translateX(18px);}
.CookieModal-switch input:disabled + span{opacity:0.6;}
.CookieModal-save{
  width:100%;margin-top:1.4rem;background:var(--Color-Ink);color:var(--Color-White);padding:0.9em;
  border-radius:var(--Radius-pill);font-weight:600;transition:background var(--Transition);
}
.CookieModal-save:hover{background:var(--Color-Clay);}


.CursorTrail{
  position:fixed;width:14px;height:14px;border-radius:50%;
  background:radial-gradient(circle, rgba(191,91,58,0.55), rgba(191,91,58,0));
  pointer-events:none;z-index:9999;transform:translate(-50%,-50%);
  transition:left 0.12s ease-out, top 0.12s ease-out, opacity 0.3s ease;
  mix-blend-mode:multiply;
}


.SiteFooter{background:var(--Color-Ink);color:var(--Color-Cream);margin-top:auto;}
.SiteFooter-inner{
  max-width:1280px;margin:0 auto;padding:var(--Space-6) 1.5rem var(--Space-4);
  display:grid;grid-template-columns:1fr;gap:2rem;
}
.SiteFooter-brand{display:flex;flex-direction:column;gap:0.6rem;}
.SiteFooter-brand span{font-family:var(--Font-Head);font-size:1.3rem;font-weight:700;color:var(--Color-White);}
.SiteFooter-brand p{color:rgba(250,246,239,0.65);font-size:0.9rem;max-width:32ch;}
.SiteFooter-col h3{color:var(--Color-White);font-size:1rem;margin-bottom:0.8rem;}
.SiteFooter-col a,.SiteFooter-col p{display:block;color:rgba(250,246,239,0.7);font-size:0.9rem;margin-bottom:0.55rem;transition:color var(--Transition);}
.SiteFooter-col a:hover{color:var(--Color-Gold);}
.SiteFooter-col p i{margin-right:0.5em;color:var(--Color-Gold);}
.SiteFooter-bottom{
  border-top:1px solid rgba(255,255,255,0.1);padding:1.2rem 1.5rem;max-width:1280px;margin:0 auto;
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:0.6rem;font-size:0.8rem;color:rgba(250,246,239,0.55);
}
@media(min-width:720px){.SiteFooter-inner{grid-template-columns:1.4fr 1fr 1fr 1.3fr;}}

body{display:flex;flex-direction:column;min-height:100vh;}
main{flex:1;}


@media(max-width:480px){
  .SiteHeader-inner{padding:0.8rem 1rem;}
  .PageHero{padding:var(--Space-5) 1rem var(--Space-6);}
  .Bento,.Comparison,.TwoCol,.Process,.Gallery,.Area,.Values,.Steps,.Faq,.PortfolioGrid,.Cta,.Intro{padding-left:1rem;padding-right:1rem;}
  .PageHero-actions{flex-direction:column;align-items:stretch;}
  .PageHero-actions .Button{width:100%;}
  .CookieConsent{top:0.8rem;left:0.8rem;width:calc(100vw - 1.6rem);}
}