
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&family=Manrope:wght@400;500;600;700&display=swap');

:root{
  --wine:#6c1221;
  --wine-deep:#470810;
  --wine-rich:#7f1b2f;
  --blush:#f5dfdb;
  --blush-light:#fbf1ee;
  --ivory:#fffaf5;
  --paper:#fffdf9;
  --ink:#2e2223;
  --muted:#6e5b5a;
  --gold:#c79a4b;
  --gold-soft:#e6c88b;
  --line:#ead7cf;
  --shadow:0 20px 45px rgba(74,15,26,.10);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--ink);
  background:var(--ivory);
  font-family:"Cormorant Garamond", Georgia, serif;
  line-height:1.55;
}
img{display:block;max-width:100%}
a{text-decoration:none;color:inherit}
button,input,select,textarea{font:inherit}
.wrap{width:min(1240px,92%);margin-inline:auto}
.narrow{width:min(1080px,92%);margin-inline:auto}

.topbar{
  background:linear-gradient(90deg,var(--wine-deep),var(--wine),var(--wine-deep));
  color:#fff;
  padding:8px 0;
  font:11px "Manrope",Arial,sans-serif;
  letter-spacing:.15em;
  text-transform:uppercase;
}
.topbar .wrap{display:flex;justify-content:space-between;gap:24px}

.site-header{
  background:rgba(255,250,245,.98);
  border-bottom:1px solid var(--line);
  position:sticky;top:0;z-index:30;
  box-shadow:0 7px 28px rgba(75,20,30,.045);
}
.header-row{
  min-height:80px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}
.brand{display:flex;align-items:center;gap:15px;flex:0 0 auto}
.brand-logo{width:92px;height:auto}
.brand-copy{border-left:1px solid rgba(199,154,75,.7);padding-left:18px}
.brand-name{font-size:28px;line-height:.94;font-weight:600;letter-spacing:.01em}
.brand-sub{
  margin-top:9px;
  color:var(--gold);
  font:18px "Manrope",Arial,sans-serif;
  font-weight:800;
  letter-spacing:.15em;
  text-transform:uppercase;
}

.desktop-nav{
  display:flex;align-items:center;gap:18px;
  font:16px "Manrope",Arial,sans-serif;
}
.desktop-nav a{position:relative;white-space:nowrap}
.desktop-nav a:hover,.desktop-nav a.active{color:var(--wine)}
.desktop-nav a:hover:after,.desktop-nav a.active:after{
  content:"";position:absolute;left:0;right:0;bottom:-8px;height:1px;background:var(--wine);
}
.portal-btn,.consult-btn,.btn-primary,.btn-outline{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  font:11px "Manrope",Arial,sans-serif;
  text-transform:uppercase;letter-spacing:.14em;
  transition:.2s ease;
}
.portal-btn,.consult-btn,.btn-primary{
  background:linear-gradient(135deg,var(--wine-deep),var(--wine));
  color:#fff;border:1px solid var(--gold);
}
.portal-btn{padding:13px 17px}
.consult-btn{padding:13px 17px;color:#fff!important;border:1px solid var(--gold);white-space:nowrap}
.btn-primary{padding:15px 24px}
.btn-outline{
  color:#493a39;background:#fff;border:1px solid rgba(199,154,75,.78);padding:14px 24px;
}
.btn-primary:hover,.portal-btn:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(75,12,24,.18)}
.btn-outline:hover{background:var(--blush-light)}

.mobile-menu{display:none}
.mobile-menu summary{
  cursor:pointer;list-style:none;
  font:12px "Manrope",Arial,sans-serif;
  text-transform:uppercase;letter-spacing:.13em;
  border:1px solid var(--gold);padding:10px 12px;color:var(--wine);
}
.mobile-menu summary::-webkit-details-marker{display:none}
.mobile-menu nav{
  position:absolute;right:4%;left:4%;top:100%;
  background:var(--paper);border:1px solid var(--line);
  box-shadow:var(--shadow);padding:18px;
  display:grid;gap:13px;
  font:14px "Manrope",Arial,sans-serif;
}

.section-label{
  display:flex;align-items:center;gap:13px;
  color:var(--gold);
  font:10px "Manrope",Arial,sans-serif;
  letter-spacing:.30em;text-transform:uppercase;
}
.section-label:before{content:"";width:42px;height:1px;background:var(--gold);flex:0 0 auto}

.hero{
  overflow:hidden;
  background:linear-gradient(90deg,#fffaf5 0 44%,#f2dcd7 44% 100%);
}
.hero-grid{
  display:grid;grid-template-columns:44% 56%;
  align-items:center;
  min-height:690px;
}
.hero-copy{padding:62px 46px 62px 0}
.hero h1{
  margin:18px 0 0;
  max-width:590px;
  color:var(--wine);
  font-size:78px;
  line-height:.90;
  font-weight:600;
  letter-spacing:-.02em;
}
.hero-lead{
  margin-top:26px;
  max-width:570px;
  color:#443536;
  font-size:24px;
  line-height:1.26;
}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}
.hero-meta{
  margin-top:21px;
  font:10px "Manrope",Arial,sans-serif;
  color:#725f5e;
  letter-spacing:.15em;text-transform:uppercase;
}
.hero-meta span{margin:0 10px}

.hero-visual{
  position:relative;
  padding:26px 0 26px 28px;
  min-height:690px;
  display:flex;align-items:center;
}
.photo-shell{
  position:relative;
  width:100%;
  max-width:700px;
  margin-left:auto;
  background:#ead6d0;
  border-left:1px solid rgba(199,154,75,.42);
  box-shadow:var(--shadow);
  overflow:hidden;
}
.hero-photo{
  width:100%;
  height:auto;
  object-fit:contain;
}
.signature-on-photo{
  position:absolute;
  width:min(52%,470px);
  right:3%;
  bottom:7%;
  filter:drop-shadow(0 2px 5px rgba(25,5,8,.25));
}
.attorney-label{
  position:absolute;right:5%;bottom:3%;
  color:#fff;
  font:9px "Manrope",Arial,sans-serif;
  text-transform:uppercase;letter-spacing:.33em;
  text-shadow:0 2px 5px rgba(0,0,0,.42);
}

.brand-band{
  background:linear-gradient(90deg,var(--wine-deep),var(--wine-rich),var(--wine-deep));
  color:#fff;border-top:1px solid var(--gold);border-bottom:1px solid var(--gold);
  padding:17px 0;
}
.brand-band .wrap{
  display:flex;justify-content:center;align-items:center;gap:34px;
  font:11px "Manrope",Arial,sans-serif;
  text-transform:uppercase;letter-spacing:.29em;
}
.brand-band i{display:block;width:1px;height:17px;background:rgba(255,255,255,.45)}

section.standard{padding:78px 0}
.center{text-align:center}
.center .section-label{justify-content:center}
.section-title{
  margin:11px 0 0;
  color:var(--wine);
  font-size:57px;line-height:1;font-weight:600;
}
.section-sub{
  max-width:760px;margin:13px auto 0;color:var(--muted);font-size:23px;line-height:1.3;
}

.practice-grid{
  margin-top:42px;
  display:grid;grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.practice{
  text-align:center;padding:37px 25px 34px;border-right:1px solid var(--line);
}
.practice:last-child{border-right:0}
.icon-ring{
  width:62px;height:62px;border-radius:50%;
  border:1px solid rgba(199,154,75,.65);
  display:grid;place-items:center;margin:0 auto 18px;color:var(--gold);
}
.icon-ring svg{width:28px;height:28px;stroke:currentColor;fill:none;stroke-width:1.7}
.practice h3{margin:0;color:var(--wine);font-size:28px;line-height:1.03;font-weight:600}
.practice h3.long-title{font-size:23px;line-height:1.06}
.practice p{margin:15px 0 0;color:#5f4d4c;font-size:19px;line-height:1.28}
.learn{
  margin-top:20px;display:inline-block;color:var(--gold);
  font:10px "Manrope",Arial,sans-serif;text-transform:uppercase;letter-spacing:.16em;
}

.boutique{
  position:relative;overflow:hidden;
  color:#fff;
  background:linear-gradient(100deg,#4c0812 0%,#6d1222 54%,#560a16 100%);
  border-top:1px solid rgba(230,200,139,.40);border-bottom:1px solid rgba(230,200,139,.40);
}
.boutique:before{
  content:"";
  position:absolute;
  left:-82px;
  bottom:-88px;
  width:365px;
  height:365px;
  background:url("assets/peony-clean.png") left bottom/contain no-repeat;
  opacity:.88;
  pointer-events:none;
}
.boutique-grid{
  position:relative;z-index:1;
  display:grid;grid-template-columns:58% 42%;gap:30px;align-items:center;
  padding:74px 0;
}
.boutique-copy{padding-left:225px}
.boutique .section-label{color:var(--gold-soft)}
.boutique .section-label:before{background:var(--gold-soft)}
.boutique h2{margin:15px 0 0;font-size:60px;line-height:.98;font-weight:500}
.boutique p{margin-top:17px;font-size:21px;max-width:600px}
.quote-box{border-left:1px solid rgba(230,200,139,.72);padding-left:34px}
.quote-box blockquote{margin:0;font-size:50px;line-height:1.04;font-style:italic}
.quote-signature{margin-top:24px;width:min(100%,420px)}
.quote-role{
  margin-top:6px;font:9px "Manrope",Arial,sans-serif;text-transform:uppercase;letter-spacing:.30em;
}

.final-cta{text-align:center}
.final-cta h2{margin:0;color:var(--wine);font-size:59px;line-height:1}
.final-cta p{margin:15px auto 0;max-width:800px;color:var(--muted);font-size:22px}
.final-cta .btn-primary{margin-top:28px}

.page-hero{
  position:relative;overflow:hidden;
  background:linear-gradient(180deg,var(--blush-light),#fffaf6);
  border-bottom:1px solid var(--line);
}
.page-hero:after{
  content:"DDB";position:absolute;right:5%;top:10px;
  color:rgba(199,154,75,.08);
  font-size:180px;font-weight:600;letter-spacing:-25px;
}
.page-hero .wrap{position:relative;z-index:1;padding:66px 0 58px}
.page-hero h1{
  margin:16px 0 0;color:var(--wine);font-size:68px;line-height:.95;font-weight:600;max-width:930px;
}
.page-hero p{margin-top:16px;max-width:800px;color:var(--muted);font-size:23px;line-height:1.3}

.content-stack{display:grid;gap:24px}
.service-panel{
  background:#fff;border:1px solid var(--line);box-shadow:0 13px 32px rgba(76,15,27,.055);
  overflow:hidden;
}
.service-head{
  background:linear-gradient(90deg,var(--blush-light),#fff);
  border-bottom:1px solid var(--line);
  padding:29px 34px;
}
.service-kicker{
  color:var(--gold);font:10px "Manrope",Arial,sans-serif;
  text-transform:uppercase;letter-spacing:.25em;
}
.service-head h2{margin:8px 0 0;color:var(--wine);font-size:45px;line-height:1;font-weight:600}
.service-body{padding:31px 34px}
.service-intro{font-size:22px;color:#514141}
.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:26px}
.detail-card{
  background:var(--paper);border:1px solid var(--line);padding:22px;
}
.detail-card h3{margin:0;color:var(--wine);font-size:28px;line-height:1}
.detail-card p,.detail-card li{color:#604f4e;font-size:18px;line-height:1.35}
.detail-card ul{margin:13px 0 0;padding-left:19px}
.detail-card p{margin-top:12px}
.savings-note{
  margin-top:24px;padding:20px 22px;
  background:linear-gradient(135deg,#6d1222,#831d30);color:#fff;
  border-left:3px solid var(--gold-soft);
}
.savings-note strong{color:var(--gold-soft)}
.savings-note p{margin:0;font-size:19px;line-height:1.4}
.legal-note{
  margin-top:18px;font:12px "Manrope",Arial,sans-serif;color:#786665;line-height:1.5;
}

.about-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:28px}
.card{
  background:#fff;border:1px solid var(--line);box-shadow:0 13px 32px rgba(76,15,27,.05);padding:32px;
}
.card h2,.card h3{margin:0;color:var(--wine);font-weight:600}
.card h2{font-size:44px}.card h3{font-size:31px}
.card p,.card li{font-size:20px;color:#5f4e4d}
.card p+p{margin-top:16px}.card ul{padding-left:20px}
.dark-card{
  background:linear-gradient(135deg,#5b0d19,#7d1a2e);
  color:#fff;border:1px solid rgba(230,200,139,.48);
}
.dark-card h2,.dark-card h3,.dark-card p,.dark-card li{color:#fff}
.dark-card .section-label{color:var(--gold-soft)}
.dark-card .section-label:before{background:var(--gold-soft)}
.dark-signature{width:min(100%,380px);margin-top:24px}

.resource-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
.resource{
  border:1px solid var(--line);background:#fff;box-shadow:0 10px 26px rgba(77,16,29,.045);padding:29px;
}
.resource:nth-child(4n+2){background:var(--blush)}
.resource:nth-child(4n+3){background:linear-gradient(135deg,#62101e,#7e1b2e);color:#fff}
.resource:nth-child(4n+4){background:#f7edd7}
.resource .tag{color:var(--gold);font:10px "Manrope",Arial,sans-serif;text-transform:uppercase;letter-spacing:.22em}
.resource h3{margin:11px 0 0;color:var(--wine);font-size:34px;line-height:1.07}
.resource p{margin-top:14px;color:#5c4b4a;font-size:19px;line-height:1.36}
.resource:nth-child(4n+3) h3,.resource:nth-child(4n+3) p{color:#fff}
.resource:nth-child(4n+3) .tag{color:var(--gold-soft)}

.faq-group{margin-bottom:38px}
.faq-group h2{
  margin:0 0 16px;color:var(--wine);font-size:42px;font-weight:600;border-bottom:1px solid var(--line);padding-bottom:10px;
}
details.faq{
  background:#fff;border:1px solid var(--line);margin-top:12px;box-shadow:0 7px 18px rgba(77,16,29,.035);
}
details.faq summary{
  cursor:pointer;list-style:none;padding:20px 24px;color:var(--wine);font-size:27px;font-weight:600;position:relative;
}
details.faq summary::-webkit-details-marker{display:none}
details.faq summary:after{content:"+";position:absolute;right:22px;top:15px;color:var(--gold);font-size:30px;font-weight:400}
details.faq[open] summary:after{content:"–"}
.faq-answer{padding:0 24px 22px;color:#5d4d4c;font-size:19px;line-height:1.42}

.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.price-card{
  background:#fff;border:1px solid var(--line);box-shadow:0 10px 24px rgba(77,16,29,.045);padding:27px;
}
.price-card h3{margin:0;color:var(--wine);font-size:31px}
.price-card .price{
  margin-top:9px;color:var(--gold);font-size:30px;font-weight:600;
}
.price-card p{margin-top:11px;color:#5f4e4d;font-size:18px}
.white-glove-box{
  margin-top:25px;background:linear-gradient(135deg,#60101d,#7d1b2f);color:#fff;
  padding:31px;border-left:3px solid var(--gold-soft);
}
.white-glove-box h2{margin:0;font-size:38px}.white-glove-box p{margin-top:12px;font-size:20px}

.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:28px}
.contact-info{
  background:linear-gradient(160deg,#f3deda,#fff8f4);border:1px solid var(--line);padding:33px;
}
.contact-info h2{margin:12px 0 0;color:var(--wine);font-size:50px;line-height:1}
.contact-info p{margin-top:16px;color:#5b4a49;font-size:20px}
.contact-signature{width:min(100%,350px);margin-top:28px}
.form-card{background:#fff;border:1px solid rgba(199,154,75,.48);box-shadow:var(--shadow);padding:31px}
.form-card label{display:block;margin:0 0 7px;font:13px "Manrope",Arial,sans-serif;color:#5c4c4b}
.form-card input,.form-card select,.form-card textarea{
  width:100%;padding:13px 12px;border:1px solid #ddcec8;background:#fff;margin-bottom:15px;
  font:14px "Manrope",Arial,sans-serif;
}
.form-card textarea{min-height:145px}
.check{display:flex;gap:9px;align-items:flex-start;font:12px "Manrope",Arial,sans-serif;color:#6a5958;margin-bottom:17px}
.check input{width:auto;margin:3px 0 0}
.portal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}

.site-footer{
  background:linear-gradient(120deg,#470810,#6b1221 58%,#40070f);
  color:#fff;
  border-top:1px solid var(--gold);
  padding:44px 0 20px;
  position:relative;
  overflow:hidden;
}
.site-footer:after{
  content:"";
  position:absolute;
  right:-72px;
  bottom:-86px;
  width:260px;
  height:260px;
  background:url("assets/peony-clean.png") right bottom/contain no-repeat;
  opacity:.11;
  pointer-events:none;
}
.site-footer .wrap{position:relative;z-index:1}
.footer-grid{display:grid;grid-template-columns:1.3fr .8fr .9fr;gap:28px}
.footer-brand-row{display:flex;align-items:center;gap:14px}
.footer-logo{width:74px}
.footer-brand h3,.footer-col h3{margin:0;color:var(--gold-soft);font-size:23px}
.footer-brand p,.footer-col p,.footer-col a{font-size:18px;color:#f7ece9}
.footer-brand p,.footer-col p{margin:10px 0 0}
.footer-bottom{
  margin-top:26px;padding-top:16px;border-top:1px solid rgba(255,255,255,.14);
  color:#e2ceca;font:10px "Manrope",Arial,sans-serif;line-height:1.5;
}
.footer-links{margin-top:11px;font:10px "Manrope",Arial,sans-serif;text-transform:uppercase;letter-spacing:.13em;color:#f1ded9}
.footer-links a{margin-right:16px}


@media(max-width:1050px){
  .desktop-nav{display:none}
  .mobile-menu{display:block;position:static;flex:1 1 100%;order:3;width:100%}
  .mobile-menu summary{display:none}
  .mobile-menu nav{position:static;left:auto;right:auto;top:auto;background:linear-gradient(90deg,#fffaf5,#f8e9e5,#fffaf5);border-top:1px solid var(--line);border-bottom:1px solid var(--line);box-shadow:none;padding:10px 12px;display:flex;gap:22px;overflow-x:auto;white-space:nowrap;font:15px "Manrope",Arial,sans-serif;scrollbar-width:none;-ms-overflow-style:none}
  .mobile-menu nav::-webkit-scrollbar{display:none}
  .mobile-menu nav a{display:inline-flex;align-items:center;padding:4px 0;color:#544545}
  .mobile-menu nav a:last-child{padding-right:10px}
  .header-row{min-height:auto;flex-wrap:wrap;padding:7px 0 0;gap:5px}
  .brand-logo{width:82px}
  .brand-name{font-size:23px}
  .hero-grid{grid-template-columns:1fr}
  .hero{background:linear-gradient(180deg,#fffaf5 0 49%,#f2dcd7 49% 100%)}
  .hero-copy{padding:52px 0 34px}
  .hero-visual{padding:18px 0 34px;min-height:0}
  .photo-shell{max-width:760px;margin-inline:auto}
  .boutique-grid{grid-template-columns:1fr}
  .boutique-copy{padding-left:225px}
  .quote-box{border-left:0;border-top:1px solid rgba(230,200,139,.6);padding:28px 0 0}
  .detail-grid{grid-template-columns:1fr 1fr}
  .pricing-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:760px){
  .topbar .wrap{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center}
  .topbar .wrap>div:last-child{display:flex}
  .header-row{gap:12px}
  .brand{gap:11px}
  .brand-logo{width:72px}
  .brand-copy{padding-left:11px}
  .brand-name{font-size:18px}
  .brand-sub{font-size:13px;font-weight:800;letter-spacing:.14em}
  .portal-btn{display:none}
  .hero h1{font-size:55px}
  .hero-lead{font-size:20px}
  .hero-meta{line-height:1.6}
  .photo-shell{width:100%}
  .signature-on-photo{width:58%;right:3%;bottom:7%}
  .attorney-label{font-size:7px;bottom:3%}
  .brand-band .wrap{gap:13px;font-size:8px;letter-spacing:.16em}
  .section-title{font-size:44px}
  .section-sub{font-size:20px}
  .practice-grid{grid-template-columns:1fr}
  .practice{border-right:0;border-bottom:1px solid var(--line)}
  .practice:last-child{border-bottom:0}
  .boutique:before{
    left:-92px;
    bottom:-96px;
    width:245px;
    height:245px;
    opacity:.62;
  }
  .boutique-copy{padding-left:72px}
  .boutique h2{font-size:44px}
  .quote-box blockquote{font-size:38px}
  .page-hero h1{font-size:46px}
  .page-hero p{font-size:20px}
  .page-hero:after{font-size:110px;right:1%}
  .detail-grid,.about-grid,.resource-grid,.pricing-grid,.contact-grid,.portal-grid,.footer-grid{grid-template-columns:1fr}
  .service-head,.service-body{padding:25px}
  .service-head h2{font-size:38px}
  .service-intro{font-size:20px}
  .faq-group h2{font-size:36px}
  details.faq summary{font-size:23px;padding-right:48px}
  .final-cta h2{font-size:45px}
}

@media(max-width:520px){
  .boutique:before{
    left:-128px;
    bottom:-105px;
    width:235px;
    height:235px;
    opacity:.55;
  }
  .boutique-copy{padding-left:26px}
  .site-footer:after{
    right:-105px;
    bottom:-105px;
    width:220px;
    height:220px;
    opacity:.085;
  }
}


/* Homepage composite image sections to lock picture/flower placement */
.sr-only{
  position:absolute !important;
  width:1px;height:1px;
  padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);
  white-space:nowrap;border:0;
}
.hero-mockup-section{
  background:var(--ivory);
  padding:0;
}
.boutique-mockup-section{
  background:var(--ivory);
  padding:0;
}
.mockup-shell{
  position:relative;
  width:min(1400px, 100%);
  margin:0 auto;
}
.mockup-image{
  display:block;
  width:100%;
  height:auto;
}
.hotspot{
  position:absolute;
  display:block;
  z-index:2;
}
.hotspot:focus-visible{
  outline:2px solid var(--gold-soft);
  outline-offset:2px;
}
/* Hero button click zones based on the approved composite */
.hero-mockup-shell .hs-schedule{left:4.3%;top:61.0%;width:22.3%;height:7.4%;}
.hero-mockup-shell .hs-explore{left:27.7%;top:61.0%;width:15.6%;height:7.4%;}
/* Boutique section click zone */
.boutique-mockup-shell .hs-meet{left:22.0%;top:74.6%;width:17.4%;height:11.4%;}

@media(max-width:760px){
  .hero-mockup-shell .hs-schedule{left:4.0%;top:61.0%;width:22.8%;height:7.9%;}
  .hero-mockup-shell .hs-explore{left:27.4%;top:61.0%;width:16.2%;height:7.9%;}
  .boutique-mockup-shell .hs-meet{left:22.0%;top:74.2%;width:18.0%;height:12.4%;}
}

@media(max-width:1050px){
  .mobile-menu nav .consult-btn{
    background:linear-gradient(135deg,var(--wine-deep),var(--wine));
    color:#fff!important;
    border:1px solid var(--gold);
    padding:7px 12px;
  }
}
.top-contact{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
}
.top-contact a{color:#fff}
@media(max-width:760px){
  .top-contact{justify-content:center;gap:8px;flex-wrap:wrap}
}

.confidential-note{padding:16px 18px;border-left:3px solid var(--gold);background:rgba(255,255,255,.58);}
.form-privacy{margin:4px 0 18px;color:#6a5958;font:12px "Manrope",Arial,sans-serif;line-height:1.55;}
.form-privacy a{color:var(--wine);text-decoration:underline;}
.top-contact{font-weight:600;}
@media(max-width:760px){.desktop-nav{font-size:15px}.mobile-menu nav{font-size:15px}}


/* ===== V14 compact horizontal header + contact layout ===== */
.topbar{
  padding:8px 0;
}
.topbar-inner{
  width:min(1400px,96%);
  margin:0 auto;
  position:relative;
  min-height:20px;
  display:flex;
  align-items:center;
  justify-content:center;
  font:12px "Manrope",Arial,sans-serif;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.top-location{
  text-align:center;
  padding:0 260px;
}
.top-email{
  position:absolute;
  right:0;
  top:50%;
  transform:translateY(-50%);
  color:#fff;
  font-weight:600;
  letter-spacing:.10em;
  white-space:nowrap;
}

.header-main{
  min-height:76px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:26px;
  padding:8px 0;
}
.brand-horizontal{
  flex:1 1 auto;
  min-width:0;
}
.brand-horizontal .brand-logo{
  width:78px;
  flex:0 0 auto;
}
.brand-line{
  border-left:1px solid rgba(199,154,75,.72);
  padding-left:18px;
  color:#2f2525;
  font-size:31px;
  line-height:1;
  font-weight:600;
  letter-spacing:.015em;
  white-space:nowrap;
}
.header-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:14px;
  flex:0 0 auto;
}
.header-phone{
  color:var(--wine);
  font:700 22px "Manrope",Arial,sans-serif;
  letter-spacing:.025em;
  white-space:nowrap;
}
.nav-ribbon{
  background:linear-gradient(90deg,#fffaf5,#f8ebe7,#fffaf5);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.nav-ribbon .desktop-nav{
  min-height:44px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:34px;
  font:600 16px "Manrope",Arial,sans-serif;
}
.nav-ribbon .desktop-nav a{
  padding:11px 0 9px;
}
.nav-ribbon .desktop-nav a:hover:after,
.nav-ribbon .desktop-nav a.active:after{
  bottom:5px;
}

@media(max-width:1120px){
  .top-location{padding:0 225px 0 0;text-align:left}
  .brand-line{font-size:26px}
  .header-phone{font-size:19px}
  .header-actions{gap:10px}
}

@media(max-width:1050px){
  .header-main{
    min-height:auto;
    flex-wrap:wrap;
    gap:8px 16px;
    padding:8px 0;
  }
  .brand-horizontal{
    flex:1 1 100%;
  }
  .brand-horizontal .brand-logo{width:72px}
  .brand-line{
    font-size:24px;
    white-space:normal;
  }
  .header-actions{
    width:100%;
    justify-content:center;
    padding:0 0 7px;
  }
  .header-phone{font-size:20px}
  .desktop-nav{display:none!important}
  .mobile-menu{
    display:block;
    position:static;
    width:100%;
  }
  .mobile-menu summary{display:none}
  .mobile-menu nav{
    position:static;
    display:flex;
    align-items:center;
    gap:24px;
    overflow-x:auto;
    white-space:nowrap;
    background:transparent;
    border:0;
    box-shadow:none;
    padding:10px 2px;
    font:600 15px "Manrope",Arial,sans-serif;
    scrollbar-width:none;
  }
  .mobile-menu nav::-webkit-scrollbar{display:none}
  .mobile-menu nav a{flex:0 0 auto}
}

@media(max-width:760px){
  .topbar-inner{
    width:94%;
    display:grid;
    grid-template-columns:1fr;
    gap:4px;
    justify-items:center;
    font-size:10px;
    letter-spacing:.09em;
  }
  .top-location{
    padding:0;
    text-align:center;
  }
  .top-email{
    position:static;
    transform:none;
    white-space:normal;
    text-align:center;
    font-size:10px;
  }
  .header-main{
    justify-content:center;
  }
  .brand-horizontal{
    justify-content:center;
  }
  .brand-horizontal .brand-logo{width:64px}
  .brand-line{
    font-size:18px;
    line-height:1.05;
    padding-left:12px;
  }
  .header-actions{
    flex-wrap:wrap;
    gap:8px 10px;
  }
  .header-phone{
    width:100%;
    text-align:center;
    font-size:19px;
  }
  .consult-btn,.portal-btn{
    padding:10px 12px;
    font-size:10px;
  }
  .mobile-menu nav{
    gap:20px;
    font-size:14px;
    padding:9px 0;
  }
}



/* ===== V15 single-line header requested ===== */
.topbar{
  padding: 8px 0;
}
.topbar-inner{
  width: min(1400px, 96%);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 12px;
  font: 12px "Manrope", Arial, sans-serif;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.top-location{
  text-align: center;
}
.top-email{
  justify-self: end;
  color: #fff;
  font-weight: 600;
  letter-spacing: .10em;
  white-space: nowrap;
}

.header-main.singleline-header{
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 20px;
  padding: 12px 0;
}
.brand-horizontal{
  min-width: 0;
}
.brand-horizontal .brand-logo{
  width: 78px;
  flex: 0 0 auto;
}
.brand-line{
  border-left: 1px solid rgba(199,154,75,.72);
  padding-left: 18px;
  color: #2f2525;
  font-size: 25px;
  line-height: 1.05;
  font-weight: 600;
  letter-spacing: .01em;
  white-space: nowrap;
}
.header-phone{
  color: var(--wine);
  font: 700 19px "Manrope", Arial, sans-serif;
  letter-spacing: .02em;
  white-space: nowrap;
}
.consult-btn{
  white-space: nowrap;
}
.portal-btn,
.mobile-menu{
  display: none !important;
}

.nav-ribbon{
  background: linear-gradient(90deg, #fffaf5, #f8ebe7, #fffaf5);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.nav-ribbon .wrap{
  width: min(1400px, 96%);
  margin: 0 auto;
}
.nav-ribbon .desktop-nav{
  min-height: 46px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 30px;
  overflow-x: auto;
  white-space: nowrap;
  scrollbar-width: none;
  font: 600 16px "Manrope", Arial, sans-serif;
}
.nav-ribbon .desktop-nav::-webkit-scrollbar{
  display: none;
}
.nav-ribbon .desktop-nav a{
  flex: 0 0 auto;
  padding: 12px 0 10px;
}

@media (max-width: 1180px){
  .brand-line{font-size: 22px;}
  .header-phone{font-size: 18px;}
  .header-main.singleline-header{gap: 16px;}
}

@media (max-width: 980px){
  .topbar-inner{
    grid-template-columns: 1fr;
    justify-items: center;
    text-align: center;
    gap: 4px;
  }
  .top-email{
    justify-self: center;
  }
  .header-main.singleline-header{
    grid-template-columns: 1fr;
    justify-items: center;
    gap: 10px;
    padding: 12px 0 10px;
  }
  .brand-horizontal{
    justify-content: center;
  }
  .brand-line{
    font-size: 21px;
    white-space: normal;
    text-align: left;
  }
  .header-phone{
    font-size: 18px;
  }
  .nav-ribbon .desktop-nav{
    justify-content: flex-start;
    gap: 22px;
    font-size: 15px;
  }
}

@media (max-width: 640px){
  .topbar{
    padding: 7px 0;
  }
  .topbar-inner{
    font-size: 10px;
    letter-spacing: .08em;
  }
  .brand-horizontal .brand-logo{
    width: 62px;
  }
  .brand-line{
    font-size: 18px;
    padding-left: 12px;
    line-height: 1.05;
  }
  .header-phone{
    font-size: 17px;
  }
  .consult-btn{
    padding: 11px 14px;
    font-size: 10px;
  }
  .nav-ribbon .desktop-nav{
    min-height: 42px;
    gap: 18px;
    font-size: 14px;
  }
}


/* ===== V16 TRUE one-row white header — no stacking at any width ===== */
.header-main.singleline-header{
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:nowrap !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:clamp(5px,1.25vw,20px) !important;
  min-height:0 !important;
  padding:6px 0 !important;
}

.brand-horizontal{
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:nowrap !important;
  align-items:center !important;
  justify-content:flex-start !important;
  flex:1 1 auto !important;
  min-width:0 !important;
  gap:clamp(5px,.9vw,14px) !important;
}

.brand-horizontal .brand-logo{
  width:clamp(36px,6.2vw,78px) !important;
  flex:0 0 auto !important;
}

.brand-line{
  flex:0 1 auto !important;
  min-width:0 !important;
  padding-left:clamp(7px,1.1vw,18px) !important;
  font-size:clamp(10px,2vw,25px) !important;
  line-height:1 !important;
  font-weight:600 !important;
  white-space:nowrap !important;
  text-align:left !important;
}

.header-phone{
  flex:0 0 auto !important;
  width:auto !important;
  margin:0 !important;
  font-size:clamp(11px,1.65vw,19px) !important;
  line-height:1 !important;
  white-space:nowrap !important;
  text-align:left !important;
}

.consult-btn{
  flex:0 0 auto !important;
  margin:0 !important;
  padding:clamp(6px,.9vw,13px) clamp(7px,1.15vw,17px) !important;
  font-size:clamp(7px,1vw,11px) !important;
  line-height:1.15 !important;
  white-space:nowrap !important;
}

/* Cancel the prior responsive stacking rules. */
@media(max-width:980px){
  .header-main.singleline-header{
    display:flex !important;
    grid-template-columns:none !important;
    justify-items:normal !important;
    gap:clamp(5px,1.1vw,12px) !important;
    padding:5px 0 !important;
  }
  .brand-horizontal{
    justify-content:flex-start !important;
  }
  .brand-line{
    white-space:nowrap !important;
    text-align:left !important;
  }
}

@media(max-width:640px){
  .header-main.singleline-header{
    gap:5px !important;
    padding:4px 0 !important;
  }
  .brand-horizontal{
    gap:4px !important;
  }
  .brand-horizontal .brand-logo{
    width:34px !important;
  }
  .brand-line{
    padding-left:5px !important;
    font-size:9.5px !important;
    letter-spacing:0 !important;
  }
  .header-phone{
    font-size:10.5px !important;
    letter-spacing:0 !important;
  }
  .consult-btn{
    padding:6px 7px !important;
    font-size:6.8px !important;
    letter-spacing:.06em !important;
  }
}

/* ===== V21 mobile header breathing room =====
   Desktop/tablet header remains the V16 one-line layout.
   On phones, the brand gets its own row and the phone/CTA share a second row. */
@media (max-width: 760px){
  .header-main.singleline-header{
    display:grid !important;
    grid-template-columns:auto auto !important;
    grid-template-rows:auto auto !important;
    justify-content:center !important;
    align-items:center !important;
    column-gap:14px !important;
    row-gap:10px !important;
    width:min(1240px,94%) !important;
    padding:10px 0 11px !important;
  }

  .brand-horizontal{
    grid-column:1 / -1 !important;
    grid-row:1 !important;
    width:100% !important;
    justify-content:center !important;
    gap:9px !important;
    min-width:0 !important;
  }

  .brand-horizontal .brand-logo{
    width:58px !important;
    flex:0 0 auto !important;
  }

  .brand-line{
    padding-left:10px !important;
    font-size:clamp(15px,4.4vw,19px) !important;
    line-height:1.05 !important;
    letter-spacing:0 !important;
    white-space:nowrap !important;
    text-align:left !important;
  }

  .header-phone{
    grid-column:1 !important;
    grid-row:2 !important;
    justify-self:end !important;
    font-size:clamp(15px,4.2vw,18px) !important;
    letter-spacing:0 !important;
    line-height:1.1 !important;
  }

  .consult-btn{
    grid-column:2 !important;
    grid-row:2 !important;
    justify-self:start !important;
    padding:10px 12px !important;
    font-size:clamp(8px,2.5vw,10px) !important;
    line-height:1.15 !important;
    letter-spacing:.08em !important;
    white-space:nowrap !important;
  }
}

/* Extra-small phones: keep the same two-row concept, but allow the second row
   to stack only when there truly is not enough horizontal room. */
@media (max-width: 360px){
  .header-main.singleline-header{
    grid-template-columns:1fr !important;
    row-gap:8px !important;
  }
  .brand-horizontal{
    grid-column:1 !important;
  }
  .brand-horizontal .brand-logo{
    width:52px !important;
  }
  .brand-line{
    font-size:14px !important;
  }
  .header-phone,
  .consult-btn{
    grid-column:1 !important;
    justify-self:center !important;
  }
  .header-phone{grid-row:2 !important;}
  .consult-btn{grid-row:3 !important;}
}
