/* Your Visit — warm ivory, oxblood and brushed champagne.
   Real treatment photography; no location map or invented studio interior. */
::selection{background:var(--wine);color:var(--cream)}
.button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #a27b52;outline-offset:5px}
.button{transition:background .2s,color .2s,transform .2s}
.button:hover{transform:translateY(-2px)}
.visit-page{padding-top:120px;background:var(--cream)}
.visit-hero{max-width:1560px;margin:0 auto;display:grid;grid-template-columns:1.05fr 1fr;background:var(--wine);color:var(--cream);min-height:690px}
.visit-copy{padding:66px clamp(28px,5vw,78px) 34px;display:flex;flex-direction:column;align-items:flex-start}
.visit-kicker{font-size:13px;letter-spacing:1.5px;margin:0 0 35px;color:#e4cdb9}
.visit-copy h1{font:clamp(68px,6.7vw,104px)/1.03 var(--serif);letter-spacing:-.055em;color:var(--cream);margin:0 0 28px}
.visit-lead{font-size:17px;line-height:1.8;max-width:420px;color:#f1e2d5;margin:0 0 30px}
.visit-book{background:var(--cream);color:var(--wine);border:1px solid var(--cream);gap:45px}
.visit-book:hover{background:#e8d6c3;color:var(--wine)}
.visit-secondary{font-size:13px;margin-top:20px;color:#f1e2d5;text-underline-offset:5px}
.visit-secondary:hover{text-decoration:underline}
.visit-signoff{margin-top:auto;padding-top:44px;width:100%;border-bottom:1px solid #f8f4ed40;padding-bottom:16px;display:flex;justify-content:space-between;gap:20px;font-size:12px;color:#e4cdb9}
.visit-signoff small{font-size:12px}
.visit-photo{margin:24px 24px 24px 0;position:relative;overflow:hidden;min-width:0}
.visit-photo img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;object-position:50% 44%;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.visit-photo:hover img{transform:scale(1.025)}
.visit-photo:after{content:"";position:absolute;inset:60% 0 0;background:linear-gradient(transparent,#251b187d);pointer-events:none}
.visit-photo figcaption{position:absolute;bottom:28px;left:30px;color:#fffaf3;z-index:1;font:italic 31px/1.3 Georgia,serif}
.visit-photo-mark{position:absolute;right:25px;top:16px;color:#fffaf3;font:60px var(--serif);text-shadow:0 1px 12px #39282c50}
.visit-arrival{max-width:1240px;margin:auto;padding:100px 40px;display:grid;grid-template-columns:1fr 1fr;gap:12%;align-items:center}
.visit-arrival h2,.visit-before h2{font:clamp(46px,4.8vw,70px)/1.08 var(--serif);letter-spacing:-.045em;color:var(--wine);margin:0 0 26px}
.visit-arrival-copy>p:not(.eyebrow){font-size:16px;line-height:1.8;max-width:440px;color:var(--muted);margin:0 0 18px}
.visit-arrival-copy .text-link{display:inline-block;margin-top:14px}
.visit-invitation{background:var(--paper);border:1px solid #cab6a2;box-shadow:9px 12px 0 #e9dfd3;transform:rotate(2deg);transition:transform .35s}
.visit-invitation:hover,.visit-invitation[open]{transform:rotate(0)}
.visit-invitation summary{padding:25px 30px;list-style:none;display:flex;flex-direction:column;align-items:center;cursor:pointer;color:var(--wine);position:relative}
.visit-invitation summary::-webkit-details-marker,.visit-questions summary::-webkit-details-marker{display:none}
.visit-page summary::after{display:none}
.invitation-brand{font:italic 27px Georgia,serif;text-align:center}
.invitation-brand small{display:block;font:9px var(--sans);letter-spacing:3px;margin-top:7px}
.invitation-monogram{border:1px solid #c8ad90;border-radius:50%;width:83px;height:83px;display:grid;place-items:center;font:52px var(--serif);margin:30px 0 21px}
.invitation-title{font:36px var(--serif);margin-bottom:28px}
.invitation-toggle{border-top:1px solid var(--line);padding-top:18px;width:100%;display:flex;justify-content:space-between;align-items:center;font-size:13px}
.invitation-toggle>span,.visit-questions summary>span{transition:transform .25s;display:block;font-size:20px;font-weight:400}
.visit-invitation[open] .invitation-toggle>span,.visit-questions details[open] summary>span{transform:rotate(45deg)}
.invitation-inside{padding:0 30px 30px;font-size:14px;line-height:1.75;color:var(--muted)}
.invitation-inside p{margin:0 0 18px}
.invitation-inside strong,.invitation-inside a{color:var(--wine)}
.invitation-inside a{text-decoration:underline;text-underline-offset:4px}
.visit-before{max-width:1240px;margin:auto;padding:15px 40px 100px;display:grid;grid-template-columns:.85fr 1.15fr;gap:10%}
.visit-before>div>p:not(.eyebrow){max-width:270px;line-height:1.7;color:var(--muted)}
.visit-questions{border-top:1px solid var(--line)}
.visit-questions details{border-bottom:1px solid var(--line);padding:0}
.visit-questions summary{display:flex;align-items:center;justify-content:space-between;gap:20px;list-style:none;cursor:pointer;padding:23px 0;font-size:16px;font-weight:500;color:var(--wine)}
.visit-questions details p{font-size:15px;color:var(--muted);line-height:1.8;margin:0 25px 22px 0}
.visit-questions .text-link{display:inline-block;margin-bottom:25px}
.visit-questions p a{text-decoration:underline;color:var(--wine)}
.visit-closing{padding:42px 6%;background:var(--rose);border-top:1px solid var(--line);display:flex;justify-content:center;align-items:center;gap:70px}
.visit-closing p{font:36px var(--serif);color:var(--wine);margin:0}
@media(min-width:1561px){.visit-hero{border-radius:3px}}
@media(max-width:900px){
 .visit-copy{padding:42px 30px 26px}.visit-copy h1{font-size:68px}
 .visit-photo{margin:18px 18px 18px 0}.visit-hero{min-height:650px}
 .visit-arrival{gap:8%;padding:70px 30px}.visit-before{gap:7%;padding:0 30px 70px}
 .visit-signoff{flex-direction:column;gap:8px}.visit-closing{gap:30px}
}
@media(max-width:640px){
 .visit-page{padding-top:98px}.visit-hero{grid-template-columns:1fr}
 .visit-copy{padding:36px 25px 28px}.visit-kicker{font-size:12px;margin-bottom:24px}
 .visit-copy h1{font-size:64px;margin-bottom:24px}.visit-lead{font-size:16px;line-height:1.75}
 .visit-secondary{font-size:12px}.visit-signoff{flex-direction:row;padding-top:32px;font-size:10px}.visit-signoff small{font-size:10px}
 .visit-photo{margin:0 16px 16px;min-height:360px}.visit-photo figcaption{font-size:27px;left:22px;bottom:22px}
 .visit-arrival{grid-template-columns:1fr;padding:56px 26px;gap:42px}
 .visit-arrival h2,.visit-before h2{font-size:50px}
 .visit-invitation{margin:0 7px 8px 0}
 .visit-before{grid-template-columns:1fr;padding:12px 26px 55px;gap:28px}
 .visit-before>div>p:not(.eyebrow){max-width:320px}
 .visit-questions summary{font-size:15px;padding:21px 0}
 .visit-closing{flex-direction:column;align-items:flex-start;gap:22px;padding:34px 26px}
 .visit-closing p{font-size:32px}
}
@media(prefers-reduced-motion:reduce){
 .visit-photo img,.visit-invitation,.button,.invitation-toggle>span,.visit-questions summary>span{transition:none}
 .visit-photo:hover img,.button:hover{transform:none}
}
