:root{
  --wine:#300914;
  --wine-2:#4a1624;
  --wine-soft:#713c49;
  --gold:#d3b277;
  --gold-light:#f0dfbc;
  --porcelain:#f5f1ed;
  --paper:#eae3dc;
  --rose:#a96d7b;
  --ink:#251c1e;
  --muted:#5b5052;
  --rule:rgba(57,32,39,.22);
}
html{scroll-behavior:smooth}
html,body{overflow-x:clip}
a,.visit-mark{font-variant-emoji:text}
body{font-size:16px;line-height:1.65;background:var(--porcelain);color:var(--ink)}
h1,h2,h3{font-weight:500;letter-spacing:-.038em}
h2{font-size:clamp(42px,4.5vw,68px);line-height:1.1;letter-spacing:-.045em}
h2 em{font-weight:500;color:var(--wine-soft)}
.eyebrow{font-size:14px;letter-spacing:.04em;text-transform:none;font-weight:700;margin-bottom:18px;color:var(--wine-soft)}
.section-padding{padding:clamp(78px,7vw,112px) clamp(24px,5.4vw,92px)}
.section-heading{max-width:1180px;margin-bottom:44px}
.section-heading>p:last-child,.section-heading>div+p{font-size:16px;line-height:1.7;color:var(--muted);max-width:550px}
.button{min-height:54px;padding:15px 22px;font-size:14px;font-weight:700;letter-spacing:0;gap:28px}
.text-link{font-size:14px;letter-spacing:0;padding-bottom:5px}
.site-header{height:84px;padding:0 clamp(24px,5.4vw,92px);background:#250610}
.brand>span{font-size:20px}
.brand small{font-size:10px;letter-spacing:.07em}
.site-nav{gap:clamp(15px,1.6vw,25px)}
.site-nav>a:not(.nav-book){font-size:13px}
.nav-book{font-size:12px;padding:10px 15px}

/* A real portrait is foregrounded against a deliberately soft atelier photograph. */
.hero{display:block;max-height:none;min-height:0;background:#24050d;position:relative;overflow:hidden;color:#fbf7f1}
.hero:before{display:none}
.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(25,3,10,.9) 0%,rgba(30,5,12,.83) 35%,rgba(34,6,14,.35) 68%,rgba(22,3,8,.3) 100%);z-index:1;pointer-events:none}
.hero-backdrop{position:absolute;inset:-20px;background:url('assets/atelier-hero-bg.webp') center/cover no-repeat;filter:blur(7px) saturate(.78);transform:scale(1.04)}
.hero-inner{max-width:1480px;margin:auto;min-height:clamp(670px,57vw,800px);position:relative;z-index:2}
.hero-inner:after{content:"";position:absolute;right:3%;bottom:7%;width:38%;height:70%;background:radial-gradient(ellipse,rgba(229,196,154,.13),transparent 70%);z-index:0;pointer-events:none}
.hero-copy{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;position:relative;z-index:3;width:min(68%,850px);min-height:clamp(670px,57vw,800px);padding:76px 0 90px clamp(28px,5.4vw,92px)}
.hero-place{font-size:13px;letter-spacing:.025em;text-transform:none;color:var(--gold-light);font-weight:700;margin:0 0 45px}
.hero-place span{display:block;color:#e5d5d7;font-weight:500;margin-top:5px}
.hero h1{font-size:clamp(56px,5.6vw,88px);line-height:1.05;letter-spacing:-.052em;font-weight:500;white-space:normal;max-width:830px;margin:0 0 31px}
.hero h1 span{font-size:.66em;color:#f8f0e8;white-space:normal;display:block;margin-top:.24em}
.hero-lead{max-width:540px;color:#f5e9e6;font-size:17px;line-height:1.65;margin-bottom:33px;text-wrap:pretty}
.hero-actions{gap:28px}
.hero-person{position:absolute;z-index:2;bottom:-17px;right:4.5%;height:91%;width:auto;max-width:48%;object-fit:contain;object-position:bottom;filter:drop-shadow(0 10px 28px rgba(0,0,0,.27))}
.hero-bottom{position:relative;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px clamp(28px,5.4vw,92px);border-top:1px solid rgba(240,223,188,.32);background:rgba(24,3,10,.62);font-size:13px;color:#efe2df}

/* Editorial rhythm: generous but consistent gutters, readable copy, quiet rules. */
.intro-facts{padding-top:40px;padding-bottom:46px;background:#ede8e3}
.intro-overline,.facts-grid{max-width:1180px}
.intro-overline{font-size:23px;margin-bottom:23px}
.facts-grid strong{font-size:clamp(26px,2.6vw,38px);color:#38252b}
.facts-grid span{font-size:13px;color:#625558;line-height:1.55}
.facts-grid>div{padding-left:24px}

.services{background:#f5f1ed;background-image:none}
.services-heading,.services-layout{max-width:1180px}
.services-heading{grid-template-columns:1.12fr .88fr;gap:60px;align-items:end}
.services-heading .eyebrow{margin-bottom:-28px}
.services-heading>p:last-child{font-size:17px;line-height:1.7;color:#54484a}
.services-layout{grid-template-columns:48% 52%;gap:0;align-items:stretch}
.services-image-wrap{height:auto;min-height:650px;overflow:hidden;background:#d9cac2}
.services-image-wrap>img{width:100%;height:100%;object-fit:cover}
.image-stamp{right:22px;bottom:22px;width:126px;height:126px;transform:none;font-size:18px;background:rgba(42,7,17,.93);line-height:1.15}
.service-list{margin-left:clamp(38px,6vw,88px);display:flex;flex-direction:column;justify-content:center}
.service-row{display:block;padding:23px 0 22px;min-height:0}
.service-index{display:none}
.service-row h3{font-size:clamp(27px,2.3vw,35px);margin-bottom:8px}
.service-row p{font-size:15px;line-height:1.6;color:#65595b;max-width:470px}
.service-uv{margin:22px 0 0;padding:22px 24px;background:var(--wine);color:#fff}
.service-uv p{color:#f1e4e5}
.service-actions{margin-top:30px;gap:26px}
.service-row:not(.service-uv):hover,.service-row:not(.service-uv):focus{padding-left:0;color:var(--wine-soft)}

.quote-section{max-width:1320px;width:calc(100% - clamp(48px,10.8vw,184px));min-height:0;margin:0 auto 110px;grid-template-columns:43% 57%;background:#e9e2db;color:var(--ink)}
.quote-photo{height:550px;max-height:none}
.quote-photo img{filter:grayscale(1) contrast(1.05);object-position:50% 25%}
.quote-copy{background:#e9e2db;padding:55px clamp(38px,5.3vw,85px);color:var(--ink);justify-content:center}
.quote-copy .eyebrow{color:var(--wine-soft)}
.quote-copy blockquote{font-family:var(--sans);font-size:clamp(21px,2vw,26px);line-height:1.55;letter-spacing:-.02em;font-weight:500}
.quote-by{font-size:21px;margin:25px 0 22px;color:var(--wine-soft)}
.quote-copy .text-link-light{color:var(--wine);border-color:var(--wine)}
.quote-copy .text-link-light:hover{color:var(--wine-soft);border-color:var(--wine-soft)}

.gallery{background:#211419;color:#f5f1ed}
.gallery-heading,.gallery-filters,.gallery-grid,.gallery-bottom{max-width:1180px}
.gallery .eyebrow{color:var(--gold-light)}
.gallery h2 em{color:#e1bbb7}
.gallery .gallery-heading>p:last-child{color:#e4d7d5;font-size:16px;max-width:430px}
.gallery-filters{margin-bottom:26px;gap:10px}
.filter-button{border-color:rgba(245,241,237,.36);color:#f5f1ed;font-size:14px;padding:10px 18px}
.filter-button:hover,.filter-button.is-active{background:var(--gold-light);border-color:var(--gold-light);color:var(--wine)}
.gallery-grid{gap:9px;grid-auto-rows:245px}
.gallery-item{background:#463139}
.gallery-item:after{display:none}
.gallery-item span{display:none}
.gallery-item img{filter:saturate(.76);transition:filter .25s ease,transform .35s ease}
.gallery-item:hover img,.gallery-item:focus-visible img{filter:saturate(1);transform:scale(1.025)}
.gallery-bottom{border-color:rgba(245,241,237,.25)}
.gallery-bottom>span{font-size:26px;color:#f5f1ed}
.gallery-bottom .button-dark{background:var(--gold);color:var(--wine)}
.gallery-bottom .button-dark:hover{background:var(--gold-light)}

.pricing{background:#f5f1ed;color:var(--ink)}
.pricing:before,.pricing:after{display:none}
.pricing-intro,.pricing-content,.pricing-extras,.pricing-footer{max-width:1180px}
.pricing-intro{gap:12px 70px;margin-bottom:40px}
.pricing-intro .eyebrow{color:var(--wine-soft)}
.pricing-intro h2{font-size:clamp(46px,4.4vw,67px)}
.pricing-intro>p:nth-of-type(2){color:#514549;font-size:17px;line-height:1.6}
.pricing-note{color:#6b5d60;font-size:13px;margin-top:22px;line-height:1.5}
.pricing-content{gap:20px}
.price-group{border:1px solid #c8bbb9;background:#fffdfa}
.price-group summary{padding:23px 25px;color:var(--ink);font-size:30px}
.price-group summary span{color:var(--wine-soft)}
.price-group-body{padding:0 25px 21px}
.price-subheading{font-size:13px;color:var(--wine-soft);letter-spacing:.04em;margin:25px 0 8px}
.price-row{border-bottom-color:#e3d8d6;font-size:15px;padding:10px 0;color:#30272a}
.price-row strong{color:var(--wine);font-weight:700}
.price-row small{color:#706468;font-size:12px}
.pricing-extras{border-color:#c8bbb9;background:#ebe4df;grid-template-columns:1.25fr 1fr 1fr 1fr;padding:25px}
.pricing-extras h3{font-size:27px}
.pricing-extras p{font-size:14px;line-height:1.5}
.pricing-extras strong{color:var(--wine)}
.pricing-extras small{color:#665a5d;font-size:12px}
.pricing-footer{border-color:#c8bbb9}
.pricing-footer p{font-size:15px;color:#514549}

.reviews{background:#ebe5df}
.reviews-heading{max-width:1180px}
.reviews-heading>p{color:#514549}
.review-feature{max-width:1180px;background:#faf8f5;padding:48px 70px}
.review-feature>span{opacity:.18}
.review-feature blockquote{font-size:clamp(27px,2.65vw,40px);line-height:1.35;font-weight:500}
.review-feature p{font-size:13px}
.review-columns,.more-reviews{max-width:1180px}
.review-columns blockquote{font-size:22px;line-height:1.45;padding-right:35px}
.review-columns cite,.more-reviews cite{font-size:12px}
.more-reviews summary{font-size:15px}
.more-reviews-grid blockquote{font-size:20px}
.review-source{margin-top:30px}

.visit{background:#f5f1ed}
.visit-grid{max-width:1180px}
.visit-grid article{padding:24px 24px}
.visit-grid h3{font-size:27px}
.visit-grid p{font-size:14px;color:#5b5052;line-height:1.75}
.visit>.text-link{margin-left:max(0px,calc((100% - 1180px)/2))}

.about{background:#eae3dc;display:grid;grid-template-columns:minmax(0,46fr) minmax(0,54fr);min-height:0;padding:80px clamp(24px,5.4vw,92px);gap:clamp(40px,5vw,80px)}
.about-image{height:620px;margin:0;min-width:0}
.about-copy{max-width:570px;padding:45px 0;align-self:center}
.about-copy h2{font-size:clamp(58px,5.8vw,84px);margin-bottom:28px;line-height:1.02}
.about-copy p:not(.eyebrow){font-size:16px;color:#504447;line-height:1.75}
.about-signature{font-size:43px;margin-top:13px}
.certificates{background:#f5f1ed}
.certificate-strip,.certificates .section-heading{max-width:1180px}
.certificate-strip img{height:245px}
.contact{background:var(--wine) url('assets/atelier-hero-bg.webp') center/cover no-repeat}
.contact:before{background:rgba(33,3,11,.88)}
.contact-copy>p:not(.eyebrow){font-size:16px;color:#f1e7e5}
.contact-details a{font-size:clamp(23px,2.2vw,32px)}
.contact-details a span{font-size:12px;letter-spacing:.04em}
.contact-details p{font-size:14px}
.footer-top p{font-size:22px}
.footer-bottom{font-size:12px}
.rules-hero{background:var(--wine) url('assets/atelier-hero-bg.webp') center/cover no-repeat}
.rules-hero h1{font-size:clamp(55px,6vw,88px)}
.rules-hero p:last-child{font-size:17px;color:#f1e7e5}
.rules-main{max-width:1180px}
.rule-item p,.rules-callout p{font-size:15px;color:#514549}

@media(max-width:1100px){
  .site-nav{gap:12px}
  .site-nav>a:not(.nav-book){font-size:12px}
  .hero h1{font-size:clamp(52px,5.3vw,75px)}
  .hero-person{right:-1%;height:86%}
  .services-layout{grid-template-columns:44% 56%}
  .service-list{margin-left:45px}
  .quote-copy{padding:45px}
  .pricing-extras{grid-template-columns:1fr 1fr}
  .pricing-extras h3{grid-column:1/-1}
}
@media(max-width:900px){
  .site-header{height:76px}
  .site-nav{top:76px}
  .site-nav>a:not(.nav-book){font-size:16px}
  .hero-inner{min-height:760px}
  .hero-copy{min-height:0;width:100%;padding:77px 6vw 380px;justify-content:flex-start}
  .hero h1{font-size:clamp(50px,7.5vw,68px);max-width:680px}
  .hero-lead{font-size:16px;max-width:520px}
  .hero-person{height:480px;max-width:56%;right:3%;bottom:-5px}
  .hero:after{background:linear-gradient(180deg,rgba(25,3,10,.88) 0%,rgba(30,5,12,.78) 52%,rgba(31,6,12,.35) 100%)}
  .services-heading{display:block}
  .services-heading .eyebrow{margin:0 0 17px}
  .services-heading>p:last-child{margin-top:20px}
  .services-layout{grid-template-columns:1fr}
  .services-image-wrap{height:520px;min-height:0}
  .service-list{margin:45px 0 0}
  .quote-section{width:calc(100% - 48px);margin-bottom:80px;grid-template-columns:41% 59%}
  .quote-photo{height:550px}
  .quote-copy{padding:38px}
  .quote-copy blockquote{font-size:23px}
  .gallery-grid{grid-auto-rows:220px}
  .pricing-content{grid-template-columns:1fr}
  .price-group.rzesy{grid-row:auto}
  .review-columns blockquote{font-size:19px}
  .visit-grid{grid-template-columns:1fr 1fr}
  .about{grid-template-columns:45% 55%;gap:40px}
  .about-image{height:540px}
  .about-copy{padding:0}
  .about-copy h2{font-size:62px}
}
@media(max-width:640px){
  body{font-size:15px}
  .section-padding{padding:72px 22px}
  .section-heading h2{font-size:clamp(43px,11vw,60px)}
  .section-heading>p:last-child,.section-heading>div+p{font-size:15px}
  .site-header{padding:0 18px}
  .brand>span{font-size:16px}
  .hero-inner{display:grid;grid-template-rows:max-content minmax(0,1fr);height:calc(100vh - 116px);height:calc(100svh - 116px);min-height:0}
  .hero-inner:before{content:"EW";position:absolute;z-index:1;bottom:12px;left:50%;transform:translateX(-50%);font-family:'Bodoni Moda',Georgia,serif;font-size:clamp(180px,56vw,245px);font-weight:400;line-height:1;letter-spacing:-.12em;white-space:nowrap;color:rgba(229,196,154,.11);pointer-events:none}
  .hero-inner:after{top:auto;right:0;bottom:0;width:100%;height:350px;background:radial-gradient(ellipse at 50% 57%,rgba(229,196,154,.18),transparent 70%)}
  .hero-copy{grid-row:1;min-height:0;width:100%;padding:24px 22px 19px;display:block;border:0;background:linear-gradient(180deg,rgba(34,6,14,.78),rgba(34,6,14,.24))}
  .hero-place{font-size:11px;line-height:1.4;margin-bottom:17px}
  .hero h1{font-size:clamp(38px,10.5vw,45px);line-height:1.04;margin-bottom:17px}
  .hero h1 span{font-size:.7em;max-width:350px}
  .hero-lead{font-size:14px;line-height:1.5;max-width:360px;margin-bottom:19px}
  .hero-actions{gap:12px}
  .hero-actions .button{width:100%;max-width:350px}
  .hero-person{position:relative;grid-row:2;align-self:end;justify-self:center;height:100%;max-height:440px;min-height:0;width:auto;max-width:100%;right:auto;bottom:auto;margin:0 auto -1px;object-fit:contain;filter:drop-shadow(0 8px 22px rgba(0,0,0,.28))}
  .hero:after{background:linear-gradient(180deg,rgba(25,3,10,.78),rgba(30,5,12,.55) 55%,rgba(31,6,12,.22))}
  .hero-bottom{height:40px;padding:0 22px;font-size:11px;line-height:1.3}
  .hero-bottom span:last-child{text-align:right}
  .intro-facts{padding:34px 22px}
  .intro-overline{font-size:22px}
  .facts-grid{gap:20px 14px}
  .facts-grid strong{font-size:clamp(21px,6vw,26px);white-space:normal}
  .facts-grid span{font-size:12px}
  .services-image-wrap{height:420px}
  .image-stamp{width:108px;height:108px;font-size:16px;right:13px;bottom:13px}
  .service-list{margin-top:32px}
  .service-row h3{font-size:28px}
  .service-row p{font-size:14px}
  .service-actions .button{width:100%}
  .quote-section{display:block;width:calc(100% - 44px);margin:0 auto 70px}
  .quote-photo{height:390px}
  .quote-copy{padding:40px 28px 48px}
  .quote-copy blockquote{font-size:22px}
  .gallery-heading,.reviews-heading{display:block}
  .gallery-heading>p{margin-top:18px}
  .gallery-filters{gap:7px}
  .filter-button{font-size:12px;padding:10px 12px}
  .gallery-grid{grid-template-columns:1fr 1fr;grid-auto-rows:175px;gap:7px}
  .gallery-bottom{display:block}
  .gallery-bottom>span{display:block;margin-bottom:18px}
  .gallery-bottom .button{width:100%}
  .pricing-intro{display:block}
  .pricing-intro h2{font-size:52px}
  .pricing-intro>p:nth-of-type(2){font-size:15px}
  .price-group summary{font-size:27px}
  .price-row{font-size:14px}
  .pricing-extras{display:block}
  .pricing-extras h3{margin-bottom:15px}
  .pricing-extras p{font-size:14px;padding:9px 0;border-top:1px solid #d2c7c4}
  .pricing-extras small{display:block;margin-top:12px}
  .pricing-footer{display:block}
  .pricing-footer p{margin-bottom:20px}
  .pricing-footer .button{width:100%}
  .review-feature{padding:42px 28px}
  .review-feature blockquote{font-size:29px}
  .review-columns{display:block}
  .review-columns blockquote{font-size:20px;margin:0;border:0;border-top:1px solid var(--rule);padding:22px 0}
  .more-reviews-grid{grid-template-columns:1fr}
  .visit-grid{grid-template-columns:1fr 1fr}
  .visit-grid article{padding:20px 12px}
  .visit-grid h3{font-size:24px}
  .visit-grid p{font-size:13px}
  .about{display:block;padding:0 0 70px}
  .about-image{height:470px}
  .about-copy{padding:56px 22px 0}
  .about-copy h2{font-size:68px}
  .about-copy p:not(.eyebrow){font-size:15px}
  .certificate-strip img{width:75%;height:230px}
  .contact h2{font-size:clamp(50px,11vw,65px)}
  .contact-actions .button{width:100%}
  .footer-top p{font-size:18px}
  .rules-hero{padding:85px 22px 65px}
  .rules-main{padding:65px 22px}
  .rules-list{display:block}
  .rule-item p{font-size:14px}
}
@media(max-width:390px){
  .hero h1{font-size:40px}
  .hero-bottom{font-size:10px}
  .facts-grid strong{font-size:23px}
  .gallery-grid{grid-auto-rows:145px}
  .visit-grid{grid-template-columns:1fr}
  .visit-grid article,.visit-grid article:nth-child(odd),.visit-grid article:nth-child(even){padding:20px 0;border-left:0;border-top:1px solid var(--rule)}
}
@media(max-width:350px){
  .hero h1{font-size:34px}
}
@media(max-width:640px) and (max-height:700px){
  .hero-copy{padding:17px 20px 12px}
  .hero-place{margin-bottom:10px}
  .hero h1{font-size:clamp(33px,9.5vw,40px);margin-bottom:13px}
  .hero-lead{display:none}
  .hero-actions .text-link{display:none}
  .hero-actions .button{min-height:49px;padding:12px 18px}
}
@media(max-width:640px) and (max-height:600px){
  .hero-copy{padding-top:11px;padding-bottom:8px}
  .hero-place{margin-bottom:8px}
  .hero h1{font-size:clamp(30px,9vw,36px);margin-bottom:10px}
}
@media(orientation:landscape) and (max-height:500px) and (max-width:900px){
  .site-header{height:56px}
  .site-nav{top:56px}
  .brand img{width:44px;height:44px}
  .brand>span{font-size:15px}
  .hero-inner{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);grid-template-rows:minmax(0,1fr);height:calc(100vh - 88px);height:calc(100svh - 88px);min-height:0}
  .hero-inner:before,.hero-inner:after{display:none}
  .hero-copy{grid-column:1;grid-row:1;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;width:100%;height:100%;min-height:0;padding:8px 0 8px 22px;background:none}
  .hero-place{font-size:10px;line-height:1.25;margin:0 0 8px}
  .hero-place span{margin-top:1px}
  .hero h1{font-size:clamp(29px,4.7vw,40px);line-height:1;margin:0 0 12px}
  .hero h1 span{font-size:.68em;margin-top:.16em}
  .hero-lead,.hero-actions .text-link{display:none}
  .hero-actions .button{width:auto;min-height:40px;padding:8px 13px;font-size:12px}
  .hero-person{position:relative;grid-column:2;grid-row:1;align-self:end;justify-self:center;width:auto;height:calc(100vh - 88px);height:calc(100svh - 88px);max-height:100%;max-width:100%;right:auto;bottom:auto;margin:0;object-fit:contain}
  .hero:after{background:linear-gradient(90deg,rgba(25,3,10,.9),rgba(30,5,12,.45) 68%,rgba(31,6,12,.12))}
  .hero-bottom{height:32px;padding:0 22px;font-size:10px}
}
