/* Hallmark · custom (Hallmark + Frontend Design) · Abbey Flooring · signature: Style match (house era tabs, arched SVG floor samples) */
/* critique: quiet classic, stone grey ground, one deep bordeaux action colour, round arches as the only shape motif, Roman numerals for real sequences */
@font-face{font-family:"Quattrocento";font-weight:400;font-display:swap;src:url("../fonts/quattrocento-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Quattrocento";font-weight:700;font-display:swap;src:url("../fonts/quattrocento-latin-700-normal.woff2") format("woff2")}
@font-face{font-family:"Quattrocento Sans";font-weight:400;font-display:swap;src:url("../fonts/quattrocento-sans-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Quattrocento Sans";font-weight:400;font-style:italic;font-display:swap;src:url("../fonts/quattrocento-sans-latin-400-italic.woff2") format("woff2")}
@font-face{font-family:"Quattrocento Sans";font-weight:700;font-display:swap;src:url("../fonts/quattrocento-sans-latin-700-normal.woff2") format("woff2")}

:root{
  --ground:#EDEBE7; --paper:#F8F7F4; --stone:#D8D4CD; --stone-2:#C4BFB7; --stone-d:#6F6A64;
  --ink:#26272A; --ink-2:#45464B; --wine:#7A2335; --wine-d:#5A1826; --wine-l:#F1E4E5; --wine-mid:#9C3446;
  --white:#FFFFFF; --line:rgba(38,39,42,.16); --line-2:rgba(38,39,42,.08);
  --fd:"Quattrocento", Georgia, "Times New Roman", serif; --fb:"Quattrocento Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --r:12px; --r-btn:6px; --ease:cubic-bezier(.22,.8,.3,1);
  --arch:50% 50% 12px 12px / 40% 40% 12px 12px;
  --shadow:0 1px 2px rgba(38,39,42,.06), 0 14px 34px -18px rgba(38,39,42,.32);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;overflow-x:clip}
body{margin:0;background:var(--ground);color:var(--ink);font:400 17px/1.65 var(--fb);overflow-x:clip}
img{display:block;max-width:100%;height:auto}
a{color:var(--wine);text-decoration-color:rgba(122,35,53,.45);text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{color:var(--wine-d);text-decoration-color:currentColor}
:focus-visible{outline:2.5px solid var(--wine);outline-offset:3px;transition:none}
h1,h2,h3,h4{font-family:var(--fd);font-weight:700;line-height:1.12;margin:0 0 .45em;color:var(--ink);overflow-wrap:break-word;min-width:0}
h1{font-size:clamp(2rem,3.2vw,2.9rem);letter-spacing:-.01em}
h2{font-size:clamp(1.6rem,2.2vw,2.05rem)}
h3{font-size:1.25rem}
h4{font-size:1.1rem}
p{margin:0 0 1em}
.wrap{width:min(1220px,100% - clamp(32px,6vw,80px));margin-inline:auto}
.narrow{max-width:780px}
.skip{position:absolute;left:-999px;top:8px;background:var(--paper);padding:10px 14px;z-index:200;border-radius:var(--r)}
.skip:focus{left:16px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.lead{font-size:1.1rem;color:var(--ink-2);max-width:58ch}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;min-height:48px;padding:.7em 1.35em;border-radius:var(--r-btn);border:1.5px solid transparent;font:700 1rem/1.1 var(--fb);text-decoration:none;cursor:pointer;transition:transform .18s var(--ease),background-color .18s,color .18s,border-color .18s}
.btn:hover{transform:translateY(-1px)}
.btn:active{transform:translateY(1px)}
.btn-sm{min-height:42px;padding:.55em 1.05em;font-size:.95rem}
.btn-wine{background:var(--wine);color:var(--white)}
.btn-wine:hover{background:var(--wine-d);color:var(--white)}
.btn-stone{background:var(--paper);color:var(--wine-d)}
.btn-stone:hover{background:var(--white);color:var(--wine-d)}
.btn-line{background:transparent;color:var(--ink);border-color:var(--line)}
.btn-line:hover{border-color:var(--ink);color:var(--ink)}
.btn-ghost{background:transparent;color:var(--white);border-color:rgba(255,255,255,.5)}
.btn-ghost:hover{border-color:var(--white);color:var(--white)}
.btn-glass{background:rgba(255,255,255,.14);color:var(--white);border-color:rgba(255,255,255,.6);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.btn-glass:hover{background:rgba(255,255,255,.24);color:var(--white)}
.btn-plain{background:transparent;color:var(--ink);text-decoration:underline;text-decoration-color:var(--wine)}
.ico-s{width:18px;height:18px;flex:none}
.ico-a{width:18px;height:18px;flex:none;transition:transform .18s var(--ease)}
.ico-c{width:20px;height:20px;flex:none;color:var(--wine);margin-top:3px}
.link{display:inline-flex;align-items:center;gap:.45em;font-weight:700;color:var(--wine);text-decoration:none;border-bottom:1px solid rgba(122,35,53,.35);padding-bottom:1px}
.link:hover{border-bottom-color:var(--wine)}
.link:hover .ico-a{transform:translateX(3px)}

/* ---------- header ---------- */
.site-header{position:sticky;top:0;z-index:60;background:rgba(237,235,231,.9);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line-2)}
.hdr{display:flex;align-items:center;gap:20px;min-height:76px}
.brand{display:inline-flex;align-items:center;gap:11px;text-decoration:none;color:var(--ink);flex:none}
.brand-mark{width:30px;height:36px;flex:none}
.brand-name{font:700 1.55rem/1 var(--fd);display:flex;flex-direction:column;gap:3px}
.brand-name small{font:400 .8rem/1 var(--fb);color:var(--stone-d)}
.nav{display:flex;align-items:center;gap:20px;margin-left:auto}
.nav ul{display:flex;gap:2px;list-style:none;margin:0;padding:0}
.nav ul a{display:block;padding:.5em .8em;color:var(--ink);text-decoration:none;font-weight:700;font-size:.98rem;border-radius:var(--r-btn);position:relative}
.nav ul a::after{content:"";position:absolute;left:.8em;right:.8em;bottom:.25em;height:1.5px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .2s var(--ease)}
.nav ul a:hover::after,.nav ul a[aria-current="page"]::after{transform:scaleX(1)}
.nav ul a[aria-current="page"]{color:var(--wine)}
.tel{display:inline-flex;align-items:center;gap:6px;color:var(--ink);text-decoration:none;font-weight:700;white-space:nowrap}
.m-tel,.menu-btn{display:none}
/* home: header on the photo */
.has-hero .site-header{position:fixed;left:0;right:0;top:0;background:transparent;border-bottom-color:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;transition:background-color .25s,border-color .25s,box-shadow .25s}
.has-hero:not(.scrolled) .brand,.has-hero:not(.scrolled) .brand-name small{color:var(--white)}
.has-hero:not(.scrolled) .brand-name small{color:rgba(255,255,255,.85)}
.has-hero:not(.scrolled) .brand-mark path[stroke="#9C3446"]{stroke:#E9C9CE}
.has-hero.scrolled .site-header{background:rgba(237,235,231,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom-color:var(--line-2);box-shadow:0 10px 26px -20px rgba(38,39,42,.5)}
@media (min-width:1021px){
  .has-hero:not(.scrolled) .nav ul a,.has-hero:not(.scrolled) .tel{color:var(--white)}
  .has-hero:not(.scrolled) .nav ul a[aria-current="page"]{color:var(--white)}
}

/* ---------- hero ---------- */
.hero-frame{position:relative;overflow:hidden;background:var(--ink);border-radius:0 0 30px 30px}
.hero .hero-pic{margin:0}
.hero .hero-pic img{width:100%;height:clamp(520px,64vh,700px);object-fit:cover;object-position:50% 62%}
.hero-frame::after{content:"";position:absolute;inset:0;pointer-events:none;background:
  linear-gradient(180deg,rgba(24,22,22,.55) 0%,rgba(24,22,22,0) 24%),
  linear-gradient(90deg,rgba(24,22,22,.72) 0%,rgba(24,22,22,.42) 38%,rgba(24,22,22,0) 64%),
  linear-gradient(0deg,rgba(24,22,22,.45) 0%,rgba(24,22,22,0) 40%)}
.hero-copy{position:absolute;z-index:2;left:50%;transform:translateX(-50%);width:min(1220px,100% - clamp(32px,6vw,80px));bottom:clamp(40px,8vh,80px);color:var(--white)}
.hero-copy > *{max-width:590px}
.hero-copy h1{color:var(--white);margin-bottom:.35em;text-shadow:0 1px 18px rgba(0,0,0,.3)}
.hero-copy .lead{color:rgba(255,255,255,.94);margin-bottom:1.4em;text-shadow:0 1px 12px rgba(0,0,0,.35)}
.hero-actions,.ph-actions,.ty-actions{display:flex;flex-wrap:wrap;gap:12px}

/* ---------- sections ---------- */
.sec{padding:clamp(60px,7.5vw,104px) 0}
.sec + .sec{padding-top:0}
.page-hero + .sec{padding-top:16px}
.sec-head{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 22px;align-items:start;margin-bottom:38px;max-width:820px}
.sec-head h2{margin-bottom:.25em}
.sec-head p{margin:0;color:var(--ink-2);max-width:62ch}
.numeral{font:400 2.4rem/1 var(--fd);color:var(--wine);min-width:1.6em;padding-top:.05em;display:inline-block}
.numeral::after{content:"";display:block;width:28px;height:1.5px;background:var(--stone-2);margin-top:12px}

/* arched photographs */
.pic{margin:0;position:relative}
.arch{isolation:isolate}
.arch img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--arch)}
.arch::before{content:"";position:absolute;inset:12px -12px -12px 12px;border:1.5px solid var(--stone-2);border-radius:var(--arch);z-index:-1}
.arch-tall img{aspect-ratio:3/4;border-radius:50% 50% 12px 12px / 37.5% 37.5% 12px 12px}
.arch-tall::before{border-radius:50% 50% 12px 12px / 37.5% 37.5% 12px 12px}
.arch-sm::before{display:none}

/* I. eras */
.era-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(26px,3.6vw,52px)}
.era-card a{display:flex;flex-direction:column;text-decoration:none;color:var(--ink)}
.era-card .arch{margin-bottom:26px}
.era-card .arch img{transition:transform .5s var(--ease)}
.era-card a:hover .arch img{transform:translateY(-4px)}
.ec-n{font:400 1.05rem/1 var(--fd);color:var(--wine);margin-bottom:8px}
.ec-t{font:700 1.45rem/1.15 var(--fd);margin-bottom:4px}
.ec-s{font-size:.92rem;color:var(--stone-d);margin-bottom:10px}
.ec-d{color:var(--ink-2)}

/* II. style match */
.sm-sec .wrap{background:var(--paper);border-radius:22px;padding:clamp(28px,4vw,56px);box-shadow:var(--shadow)}
.sm-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:30px}
.sm-tab{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;column-gap:14px;align-items:center;text-align:left;padding:14px 18px;border:1.5px solid var(--line);border-radius:999px 999px var(--r) var(--r);background:var(--ground);color:var(--ink);font:inherit;cursor:pointer;transition:border-color .18s,background-color .18s,color .18s}
.sm-tab:hover{border-color:var(--ink)}
.sm-ico{grid-row:1/3;width:44px;height:44px;color:var(--stone-d)}
.sm-n{display:none}
.sm-name{font:700 1.15rem/1.15 var(--fd)}
.sm-span{font-size:.9rem;color:var(--stone-d)}
.sm-tab[aria-selected="true"]{background:var(--wine);border-color:var(--wine);color:var(--white)}
.sm-tab[aria-selected="true"] .sm-ico,.sm-tab[aria-selected="true"] .sm-span{color:rgba(255,255,255,.85)}
.sm-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,300px);gap:clamp(24px,3.4vw,48px);align-items:start}
.sm-panel[hidden]{display:none}
.sw-row{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.sw-svg{display:block;width:100%;height:auto;margin-bottom:14px;filter:drop-shadow(0 10px 14px rgba(38,39,42,.14))}
.sw h4{margin-bottom:.3em}
.sw p{font-size:.95rem;color:var(--ink-2);margin-bottom:.7em}
.sw .link{font-size:.92rem}
.sm-panel:not([hidden]) .sw{animation:sw-in .45s var(--ease) both}
.sm-panel:not([hidden]) .sw:nth-child(2){animation-delay:.06s}
.sm-panel:not([hidden]) .sw:nth-child(3){animation-delay:.12s}
@keyframes sw-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.sm-side{background:var(--ground);border-radius:var(--r);padding:24px}
.sm-side h3{font-size:1.15rem}
.sm-trim{font-size:.95rem;color:var(--ink-2)}
.sm-note{margin:26px 0 0;font-size:.9rem;color:var(--stone-d)}

/* ticks */
.ticks{list-style:none;margin:0 0 1.1em;padding:0;display:grid;gap:9px}
.ticks li{display:flex;gap:10px;align-items:flex-start}
.ticks-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 26px}

/* III. floors list */
.floors-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(36px,6vw,90px);align-items:start}
.floors-pic-col{position:sticky;top:110px}
.floor-rows{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.floor-rows a{display:grid;grid-template-columns:3.2em minmax(0,1fr) auto;grid-template-rows:auto auto;column-gap:14px;padding:18px 4px;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none;align-items:center;transition:background-color .2s}
.floor-rows a:hover{background:rgba(255,255,255,.5)}
.floor-rows a:hover .ico-a{transform:translateX(4px)}
.fr-n{grid-row:1/3;font:400 1.35rem/1 var(--fd);color:var(--wine)}
.fr-t{font:700 1.25rem/1.2 var(--fd)}
.fr-d{grid-column:2;color:var(--ink-2);font-size:.97rem}
.floor-rows .ico-a{grid-column:3;grid-row:1/3;color:var(--wine);width:22px;height:22px}
.more{margin-top:22px}

/* IV. steps */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.steps li{background:var(--paper);border-radius:200px 200px var(--r) var(--r) / 100px 100px var(--r) var(--r);padding:44px 24px 26px;text-align:center;border:1px solid var(--line-2)}
.st-n{display:block;font:400 1.6rem/1 var(--fd);color:var(--wine);margin-bottom:14px}
.steps h3{font-size:1.15rem}
.steps p{margin:0;color:var(--ink-2);font-size:.97rem}
.steps-sm{grid-template-columns:repeat(4,minmax(0,1fr))}
.next-sec .steps-sm{grid-template-columns:repeat(3,minmax(0,1fr))}

/* V. area + info */
.area{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(30px,5vw,70px);align-items:start}
.area-copy > p{color:var(--ink-2);max-width:62ch}
.links{display:flex;flex-wrap:wrap;gap:20px}
.info-card{background:var(--paper);border-radius:var(--r);padding:26px 26px 18px;border-top:4px solid var(--wine);box-shadow:var(--shadow)}
.info-card h2{font-size:1.35rem}
.info-card dl{margin:0}
.info-card dl > div{display:grid;grid-template-columns:84px minmax(0,1fr);gap:10px;padding:10px 0;border-top:1px solid var(--line-2)}
.info-card dt{font-weight:700;color:var(--stone-d);font-size:.92rem}
.info-card dd{margin:0}
.hours{list-style:none;margin:0;padding:0;display:block!important}
.hours li{display:block;margin:0 0 8px}
.hours li:last-child{margin-bottom:0}
.hours li span{display:block;line-height:1.35}
.hours li span:last-child{color:var(--ink-2)}

/* CTA */
.cta{display:grid;grid-template-columns:minmax(0,1.3fr) auto;gap:24px 44px;align-items:center;background:var(--wine);color:var(--white);border-radius:22px;padding:clamp(30px,4.4vw,56px);position:relative;overflow:hidden;isolation:isolate}
.cta::before{content:"";position:absolute;right:-40px;bottom:-60%;width:340px;height:420px;border:1.5px solid rgba(255,255,255,.18);border-radius:50% 50% 0 0 / 40% 40% 0 0;z-index:-1}
.cta::after{content:"";position:absolute;right:30px;bottom:-60%;width:200px;height:300px;border:1.5px solid rgba(255,255,255,.12);border-radius:50% 50% 0 0 / 34% 34% 0 0;z-index:-1}
.cta h2{color:var(--white)}
.cta p{margin:0;color:rgba(255,255,255,.9);max-width:58ch}
.cta-actions{display:flex;flex-wrap:wrap;gap:12px}

/* ---------- inner page hero ---------- */
.page-hero{position:relative;padding:clamp(48px,6vw,84px) 0 clamp(36px,4vw,56px);overflow:hidden}
.page-hero::after{content:"";position:absolute;right:max(16px,calc(50% - 640px));top:28px;width:min(300px,34vw);height:calc(100% + 120px);border:1.5px solid var(--stone-2);border-radius:50% 50% 0 0 / 30% 30% 0 0;pointer-events:none;opacity:.8}
.ph{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.8fr);gap:28px 56px;align-items:end;position:relative;z-index:1}
.ph-copy{max-width:680px}
.ph-copy .lead{margin-bottom:1.3em}
.ph-split::after,.ph-jump::after{display:none}
.sec-head.no-num{grid-template-columns:minmax(0,1fr)}
.ph-split .ph{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:center}
.ph-pic{max-width:440px;justify-self:end;width:100%}
.legal-hero .ph,.ty .ph,.nf .ph,.p-contact .ph,.p-about .ph,.p-floors .ph{grid-template-columns:minmax(0,1fr)}
.jump{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;align-self:center}
.jump a{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--paper);border-radius:var(--r);border:1px solid var(--line-2);color:var(--ink);text-decoration:none;font:700 1.1rem/1.2 var(--fd)}
.jump a span{color:var(--wine);min-width:2em;font-weight:400}
.jump a:hover{border-color:var(--ink)}
.nf .jump{flex-direction:row;flex-wrap:wrap}

/* floors hub */
.intro-sec p{font-size:1.06rem;color:var(--ink-2)}
.fl-list{display:flex;flex-direction:column;gap:clamp(56px,7vw,96px)}
.fl-row{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:clamp(32px,5vw,80px);align-items:center;scroll-margin-top:100px}
.fl-row .arch{max-width:400px;width:100%}
.fl-rev{grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr)}
.fl-rev .arch{order:2;justify-self:end}
.fl-copy h2 a{color:var(--ink);text-decoration:none}
.fl-copy h2 a:hover{color:var(--wine)}
.fl-copy > p{color:var(--ink-2)}
.mini{list-style:none;margin:0 0 1.2em;padding:0;display:grid;gap:8px;font-size:.96rem}
.mini li{padding-left:14px;border-left:2px solid var(--stone-2)}
.room-guide{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 48px}
.room-guide > div{padding:18px 0;border-top:1px solid var(--line)}
.room-guide dt{font:700 1.15rem/1.2 var(--fd);margin-bottom:4px}
.room-guide dd{margin:0;color:var(--ink-2)}

/* service pages */
.svc-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);gap:clamp(30px,5vw,70px);align-items:start}
.svc-main > p{font-size:1.04rem;color:var(--ink-2)}
.svc-main h2{margin-top:1.2em}
.svc-aside{background:var(--paper);border-radius:var(--r);padding:26px;border-top:4px solid var(--stone-2);position:sticky;top:110px}
.svc-aside h2{font-size:1.3rem}
.aside-note{font-size:.93rem;color:var(--stone-d);margin:0}
.era-fit{list-style:none;margin:18px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.era-fit li{background:var(--paper);border-radius:var(--r);padding:26px 24px;border:1px solid var(--line-2)}
.era-fit .numeral{font-size:1.8rem}
.era-fit h3{margin-top:12px}
.era-fit p{color:var(--ink-2)}
.care-box{border-left:3px solid var(--wine);padding-left:clamp(20px,3vw,36px)}
.care-box p{color:var(--ink-2);font-size:1.04rem;margin:0}
.pair{list-style:none;margin:18px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.pair a{display:flex;flex-direction:column;gap:12px;text-decoration:none;color:var(--ink);font:700 1.1rem/1.2 var(--fd)}
.pair a:hover span{color:var(--wine)}

/* FAQ */
.faq-wrap{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:28px 60px;align-items:start}
.faq{border-top:1px solid var(--line)}
.qa{border-bottom:1px solid var(--line)}
.qa summary{list-style:none;cursor:pointer;padding:18px 40px 18px 0;font:700 1.12rem/1.3 var(--fd);position:relative}
.qa summary::-webkit-details-marker{display:none}
.qa summary::after{content:"";position:absolute;right:6px;top:50%;width:12px;height:12px;border-right:2px solid var(--wine);border-bottom:2px solid var(--wine);transform:translateY(-70%) rotate(45deg);transition:transform .2s var(--ease)}
.qa[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.qa p{margin:0 0 18px;color:var(--ink-2);max-width:66ch}

/* house styles */
.era-grid2{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(36px,6vw,90px);align-items:start}
.era-sec{scroll-margin-top:90px}
.era-grid2 .arch{max-width:440px;position:sticky;top:110px}
.era-rev .era-grid2{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr)}
.era-rev .arch{order:2;justify-self:end}
.era-copy > p{color:var(--ink-2)}
.era-copy .numeral{margin-bottom:10px}
.era-span{font-size:.95rem;color:var(--stone-d)!important;margin-top:-.3em}

/* about */
.about-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(30px,6vw,90px);align-items:start}
.about-copy h2+p{margin-top:.3em}
.about-copy p{color:var(--ink-2)}
.about-copy p+h2{margin-top:1.3em}
.about-pic-col .arch{max-width:420px}
.values{list-style:none;margin:20px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.values li{border-top:1.5px solid var(--ink);padding-top:16px}
.values .numeral{font-size:1.5rem}
.values .numeral::after{display:none}
.values h3{font-size:1.15rem;margin-top:8px}
.values p{margin:0;color:var(--ink-2)}

/* ---------- contact ---------- */
.contact{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,.8fr);gap:36px;align-items:start}
.form{background:var(--paper);border-radius:18px;padding:clamp(22px,3.5vw,40px);border:1px solid var(--line-2);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:18px}
.form-intro{margin:0;color:var(--ink-2)}
.f-set{border:0;margin:0;padding:0;min-width:0}
.f-set legend{font-weight:700;margin-bottom:10px;padding:0}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{position:relative;cursor:pointer}
.chip input{position:absolute;opacity:0;width:1px;height:1px}
.chip span{display:inline-flex;align-items:center;min-height:42px;padding:.45em 1em;border-radius:var(--r-btn);border:1.5px solid var(--line);background:var(--ground);font-weight:700;font-size:.96rem;transition:background-color .15s,border-color .15s,color .15s}
.chip:hover span{border-color:var(--ink)}
.chip input:checked + span{background:var(--wine);border-color:var(--wine);color:var(--white)}
.chip input:focus-visible + span{outline:2.5px solid var(--wine);outline-offset:3px}
.f-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.f-row{display:flex;flex-direction:column;gap:6px;min-width:0}
.f-row label{font-weight:700;font-size:.96rem}
.f-row input,.f-row textarea{font:inherit;color:var(--ink);background:var(--ground);border:1.5px solid var(--line);border-radius:var(--r-btn);padding:.75em .9em;min-height:48px;width:100%;transition:border-color .15s,background-color .15s}
.f-row input::placeholder{color:#76716B}
.f-row input:focus,.f-row textarea:focus{outline:none;border-color:var(--wine);background:var(--white)}
.f-row input.invalid,.f-row textarea.invalid{border-color:#A3312B}
.consent{display:flex;gap:12px;align-items:flex-start;font-size:.95rem;cursor:pointer}
.consent input{width:20px;height:20px;margin-top:2px;flex:none;accent-color:var(--wine)}
.consent input.invalid{outline:2px solid #A3312B;outline-offset:2px}
.submit-row{display:flex;flex-wrap:wrap;align-items:center;gap:14px}
.form-msg:empty{display:none}
.form-msg,.form-status{margin:0;padding:12px 14px;border-radius:var(--r-btn);font-weight:700}
.form-msg.err,.form-status.err{background:#F6E1DF;color:#7A2320}
.form-msg.ok{background:var(--wine-l);color:var(--ink)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* ---------- legal, thank you, 404 ---------- */
.legal{max-width:860px;background:var(--paper);border-radius:18px;padding:clamp(24px,4vw,48px);border:1px solid var(--line-2)}
.legal h2{font-size:1.45rem;margin-top:1.4em}
.legal h2:first-child{margin-top:0}
.legal h3{font-size:1.15rem;margin-top:1.2em}
.legal ul{padding-left:1.2em}
.legal li{margin-bottom:.35em}
.contact-block{background:var(--ground);border-radius:var(--r);padding:16px 18px}
.dns-box{background:var(--wine-l);border-radius:var(--r);padding:20px 22px;margin:1em 0 1.4em}
.nf-code{font:400 3.6rem/1 var(--fd);color:var(--wine);margin:0 0 .15em}
.ty .lead{margin-bottom:22px}

/* ---------- footer ---------- */
.site-footer{background:var(--ink);color:#D9D6D0;margin-top:0;padding:clamp(48px,6vw,72px) 0 28px;border-radius:30px 30px 0 0}
.site-footer a{color:#F2EFEA;text-decoration-color:rgba(255,255,255,.3)}
.site-footer a:hover{color:var(--white)}
.ftr{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(4,minmax(0,1fr));gap:32px}
.ftr ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.ftr p{margin:0 0 .8em;font-size:.96rem}
.ftr-h{font:700 1.05rem/1.2 var(--fd);color:var(--white);margin-bottom:12px}
.brand-inv{color:var(--white);margin-bottom:16px}
.brand-inv .brand-name small{color:#BDB8B1}
.brand-inv .brand-mark path[stroke="#9C3446"]{stroke:#D58D9A}
.ftr-tel{font-weight:700}
.ftr .hours li{font-size:.95rem}
.ftr ul a{text-decoration:none}
.ftr ul a:hover{text-decoration:underline}
.ftr .hours li span:last-child{color:#BDB8B1}
.ftr-notes{margin-top:34px;padding-top:20px;border-top:1px solid rgba(255,255,255,.12)}
.ftr-notes p{margin:0;font-size:.9rem;color:#BDB8B1}
.ftr-legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 24px;margin-top:18px;font-size:.9rem}
.ftr-legal p{margin:0}
.ftr-legal ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 18px}
.linklike{background:none;border:0;padding:0;font:inherit;color:#F2EFEA;text-decoration:underline;text-decoration-color:rgba(255,255,255,.3);text-underline-offset:3px;cursor:pointer}

/* ---------- cookie ---------- */
.cookie-banner{position:fixed;left:16px;right:16px;bottom:16px;z-index:90;max-width:780px;margin-inline:auto;display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;padding:16px 20px;background:rgba(248,247,244,.94);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-radius:var(--r);box-shadow:0 18px 40px -16px rgba(38,39,42,.45);border:1px solid var(--line-2)}
.cookie-banner[hidden],.cookie-modal[hidden]{display:none}
.cookie-banner p{margin:0;flex:1 1 300px;font-size:.94rem}
.cookie-actions{display:flex;flex-wrap:wrap;gap:8px}
.cookie-modal{position:fixed;inset:0;z-index:100;background:rgba(38,39,42,.5);display:grid;place-items:center;padding:16px}
.cookie-box{position:relative;width:min(560px,100%);max-height:calc(100vh - 32px);overflow:auto;background:var(--paper);border-radius:18px;padding:28px}
.cookie-box h2{font-size:1.6rem}
.cookie-box p{font-size:.95rem;color:var(--ink-2)}
.cookie-x{position:absolute;top:12px;right:12px;width:40px;height:40px;border-radius:50%;border:0;background:var(--ground);font-size:1.5rem;line-height:1;cursor:pointer;color:var(--ink)}
.cookie-cat{border-top:1px solid var(--line-2);padding:12px 0 2px}
.cc-head{display:flex;justify-content:space-between;align-items:center;gap:12px}
.cc-head label{cursor:pointer}
.always{font-size:.86rem;color:var(--stone-d)}
.cookie-cat p{margin:.3em 0 .6em}
.switch{appearance:none;-webkit-appearance:none;width:46px;height:26px;border-radius:999px;background:#C9C5BF;position:relative;cursor:pointer;flex:none;transition:background-color .18s}
.switch::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--white);transition:transform .18s var(--ease)}
.switch:checked{background:var(--wine)}
.switch:checked::after{transform:translateX(20px)}
.switch:disabled{opacity:.5}
body.locked{overflow:hidden}

/* ---------- responsive ---------- */
@media (max-width:1180px){
  .tel{display:none}
  .nav ul a{padding:.5em .6em}
  .nav ul a::after{left:.6em;right:.6em}
  .ftr{grid-template-columns:repeat(4,minmax(0,1fr))}
  .ftr-brand{grid-column:1/-1}
  .pair{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:1020px){
  .hdr{min-height:68px}
  .menu-btn{display:inline-flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:var(--paper);cursor:pointer;margin-left:6px}
  .menu-btn i{display:block;width:18px;height:2px;background:var(--ink);border-radius:2px;transition:transform .2s var(--ease)}
  .menu-btn[aria-expanded="true"] i:first-of-type{transform:translateY(4px) rotate(45deg)}
  .menu-btn[aria-expanded="true"] i:last-of-type{transform:translateY(-4px) rotate(-45deg)}
  .m-tel{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:50%;background:var(--wine);color:var(--white);margin-left:auto}
  .m-tel svg{width:20px;height:20px}
  .has-hero:not(.scrolled) .menu-btn{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.5)}
  .has-hero:not(.scrolled) .menu-btn i{background:var(--white)}
  .nav{position:absolute;top:calc(100% + 8px);left:12px;right:12px;flex-direction:column;align-items:stretch;gap:12px;padding:16px;background:var(--paper);border-radius:var(--r);box-shadow:0 24px 48px -20px rgba(38,39,42,.5);opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .2s,transform .2s var(--ease),visibility 0s .2s}
  .nav.open{opacity:1;visibility:visible;transform:none;transition:opacity .2s,transform .2s var(--ease)}
  .nav ul{flex-direction:column}
  .nav ul a{padding:.75em .9em;font-size:1.05rem}
  .nav ul a::after{display:none}
  .nav .tel{display:inline-flex;padding:.4em .9em}
  .nav .btn{width:100%}
  .floors-grid,.area,.svc-grid,.contact,.ph,.ph-split .ph,.cta,.faq-wrap,.era-grid2,.era-rev .era-grid2,.about-grid,.fl-row,.fl-rev{grid-template-columns:minmax(0,1fr)}
  .floors-pic-col{position:relative;top:auto;max-width:380px}
  .svc-aside{position:static}
  .era-grid2 .arch{position:relative;top:auto;max-width:380px}
  .era-rev .arch,.fl-rev .arch{order:0;justify-self:start}
  .ph-pic{justify-self:start;max-width:380px}
  .sm-panel{grid-template-columns:minmax(0,1fr)}
  .steps,.steps-sm,.values{grid-template-columns:repeat(2,minmax(0,1fr))}
  .page-hero::after{opacity:.45}
}
@media (max-width:760px){
  body{font-size:16px}
  .hero .hero-pic img{height:max(420px,60svh);object-position:30% 60%}
  .hero-frame{border-radius:0 0 24px 24px}
  .hero-frame::after{background:linear-gradient(180deg,rgba(24,22,22,.55) 0%,rgba(24,22,22,0) 22%),linear-gradient(0deg,rgba(24,22,22,.85) 0%,rgba(24,22,22,.55) 42%,rgba(24,22,22,0) 70%)}
  .hero-copy{bottom:22px}
  .hero-copy h1{font-size:1.8rem}
  .hero-copy .lead{font-size:1rem;line-height:1.5;margin-bottom:1em}
  .hero-actions .btn{flex:1 1 auto}
  .cta-actions .btn,.submit-row .btn,.ty-actions .btn,.ph-actions .btn{width:100%}
  .era-grid{grid-template-columns:minmax(0,1fr);gap:44px}
  .era-card .arch{max-width:340px}
  .sm-tabs{grid-template-columns:minmax(0,1fr);gap:8px}
  .sm-tab{padding:10px 16px;border-radius:var(--r)}
  .sec-head{grid-template-columns:minmax(0,1fr);gap:10px}
  .floors-pic-col{display:none}
  .era-card .arch{max-width:300px}
  .sm-ico{width:36px;height:36px}
  .sw-row{grid-template-columns:repeat(3,minmax(200px,1fr));overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:10px;margin-inline:-6px;padding-inline:6px}
  .sw{scroll-snap-align:start}
  .sm-sec .wrap{padding:22px 18px;width:calc(100% - 24px)}
  .numeral{font-size:1.9rem}
  .steps,.steps-sm,.next-sec .steps-sm,.era-fit,.values,.room-guide,.ticks-2,.f-2{grid-template-columns:minmax(0,1fr)}
  .steps li{border-radius:var(--r);text-align:left;padding:22px}
  .ftr{grid-template-columns:repeat(2,minmax(0,1fr))}
  .info-card dl > div{grid-template-columns:76px minmax(0,1fr)}
  .cookie-banner .cookie-actions{width:100%}
  .cookie-banner .btn{flex:1 1 auto}
  .arch::before{inset:8px -8px -8px 8px}
  .era-grid2 .arch,.fl-row .arch,.about-pic-col .arch,.ph-pic,.era-card .arch{max-width:min(340px,calc(100% - 10px))}
  .page-hero::after{display:none}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-delay:0s!important}
  .btn:hover,.era-card a:hover .arch img{transform:none}
}
