:root { --ink:#24211f; --cream:#f6f3ee; --paper:#fffdfa; --gold:#a98048; --gold-dark:#7b5a2f; --blush:#eadfd8; --line:#ddd4ca; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:Arial, Helvetica, sans-serif; }
a { color:inherit; text-decoration:none; }
a:focus-visible,summary:focus-visible { outline:2px solid var(--gold-dark); outline-offset:4px; }
.site-header { height:88px; display:flex; align-items:center; justify-content:space-between; padding:0 clamp(24px,5vw,80px); border-bottom:1px solid rgba(123,90,47,.2); background:rgba(246,243,238,.92); backdrop-filter:blur(14px); position:relative; z-index:10; }
.brand { display:flex; align-items:center; gap:12px; }
.brand-mark { width:42px; height:42px; border:1px solid var(--gold); border-radius:50% 50% 48% 48%; display:grid; place-items:center; font-family:Georgia,serif; font-size:24px; color:var(--gold-dark); }
.brand strong,.brand small { display:block; }
.brand strong { font:600 19px/1 Georgia,serif; letter-spacing:.2em; }
.brand small { margin-top:5px; font-size:9px; text-transform:uppercase; letter-spacing:.16em; color:#716b65; }
nav { display:flex; gap:36px; font-size:13px; }
nav a { position:relative; }
nav a:after { content:""; position:absolute; left:0; right:100%; bottom:-7px; height:1px; background:var(--gold); transition:right .25s; }
nav a:hover:after { right:0; }
.header-cta { border:1px solid var(--ink); padding:12px 19px; font-size:12px; letter-spacing:.05em; transition:.2s; }
.header-cta:hover { background:var(--ink); color:white; }
.hero { min-height:calc(100svh - 88px); display:grid; grid-template-columns:1.03fr .97fr; align-items:center; gap:clamp(36px,7vw,110px); padding:clamp(56px,7vw,108px) clamp(24px,7vw,112px) clamp(68px,8vw,118px); overflow:hidden; }
.hero-copy { position:relative; z-index:2; max-width:670px; }
.eyebrow { margin:0 0 28px; color:var(--gold-dark); text-transform:uppercase; letter-spacing:.22em; font-size:11px; font-weight:700; }
h1 { margin:0; font:400 clamp(64px,7.7vw,126px)/.78 Georgia,'Times New Roman',serif; letter-spacing:-.055em; }
h1 em { color:var(--gold); font-weight:400; }
.hero-lead { max-width:540px; margin:42px 0 30px; color:#625c57; font:400 clamp(16px,1.3vw,20px)/1.65 Arial,sans-serif; }
.hero-actions { display:flex; align-items:center; gap:28px; flex-wrap:wrap; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:22px; padding:17px 22px; font-size:13px; font-weight:700; }
.button-gold { color:white; background:var(--gold-dark); box-shadow:0 14px 34px rgba(123,90,47,.16); }
.button-gold:hover { background:var(--ink); }
.button span { font-size:17px; }
.text-link { font-size:13px; border-bottom:1px solid var(--gold); padding-bottom:5px; }
.rating { display:flex; align-items:center; gap:11px; margin-top:46px; color:#6f6861; font-size:12px; }
.rating-score { color:var(--ink); font:500 24px/1 Georgia,serif; }
.stars { color:var(--gold); letter-spacing:.12em; font-size:11px; }
.hero-visual { position:relative; justify-self:end; width:min(43vw,590px); }
.arch-frame { position:relative; aspect-ratio:.79; overflow:hidden; border-radius:50% 50% 8px 8px / 34% 34% 8px 8px; box-shadow:0 34px 80px rgba(43,36,30,.14); }
.arch-frame img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:54% center; transform:scale(1.05); }
.hero-note { position:absolute; left:-55px; bottom:52px; min-width:180px; padding:17px 20px; background:var(--paper); border:1px solid var(--line); box-shadow:0 12px 36px rgba(43,36,30,.11); }
.hero-note span,.hero-note strong { display:block; }
.hero-note span { font-size:9px; letter-spacing:.13em; text-transform:uppercase; color:#7c746e; }
.hero-note strong { margin-top:7px; font:500 18px/1 Georgia,serif; }
.gold-orbit { position:absolute; width:115px; height:115px; border:1px solid rgba(169,128,72,.55); border-radius:50%; right:-44px; top:13%; }
.gold-orbit:after { content:""; position:absolute; width:7px; height:7px; background:var(--gold); border-radius:50%; right:12px; top:10px; }
h2 { margin:0; font:400 clamp(44px,5vw,76px)/.98 Georgia,'Times New Roman',serif; letter-spacing:-.045em; }
.section { padding:clamp(82px,10vw,150px) clamp(24px,7vw,112px); }
.promise-strip { min-height:82px; display:flex; align-items:center; justify-content:center; gap:clamp(18px,4vw,62px); padding:20px 24px; background:var(--ink); color:#f5eee5; font:400 clamp(13px,1.2vw,17px)/1.4 Georgia,serif; letter-spacing:.04em; text-align:center; }
.promise-strip i { color:#c9a673; font-style:normal; }
.section-head { display:grid; grid-template-columns:1.25fr .75fr; align-items:end; gap:80px; margin-bottom:58px; }
.section-head .eyebrow { margin-bottom:21px; }
.section-head>p { max-width:450px; margin:0 0 7px; color:#6d665f; line-height:1.7; }
.service-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.service-card { min-width:0; background:var(--paper); border:1px solid var(--line); }
.service-image { position:relative; aspect-ratio:.85; overflow:hidden; }
.service-image img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .55s ease; }
.service-card:hover .service-image img { transform:scale(1.035); }
.service-image>span { position:absolute; top:14px; left:14px; display:grid; place-items:center; width:34px; height:34px; background:rgba(255,253,250,.9); border-radius:50%; color:var(--gold-dark); font:600 10px/1 Arial,sans-serif; }
.service-card-copy { padding:23px 20px 20px; }
.service-card h3 { margin:0; font:500 clamp(20px,1.7vw,28px)/1.08 Georgia,serif; }
.service-card p { min-height:44px; margin:12px 0 20px; color:#746c65; font-size:13px; line-height:1.55; }
.service-card-copy>div { display:flex; justify-content:space-between; gap:12px; align-items:center; border-top:1px solid var(--line); padding-top:16px; }
.service-card strong { font:500 16px/1 Georgia,serif; color:var(--gold-dark); }
.service-card a { font-size:10px; text-transform:uppercase; letter-spacing:.06em; }
.studio-section { display:grid; grid-template-columns:1.08fr .92fr; gap:clamp(58px,9vw,140px); align-items:center; padding:clamp(82px,10vw,150px) clamp(24px,7vw,112px); background:#ebe5de; }
.studio-gallery { display:grid; grid-template-columns:1fr 1fr; gap:13px; }
.studio-gallery>div { position:relative; overflow:hidden; }
.studio-gallery img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.gallery-tall { grid-row:span 2; min-height:600px; border-radius:50% 50% 4px 4px / 24% 24% 4px 4px; }
.gallery-small { min-height:292px; }
.gallery-small:first-of-type img { object-position:center; }
.studio-copy { max-width:550px; }
.studio-copy .eyebrow { margin-bottom:24px; }
.studio-copy>p:not(.eyebrow) { margin:30px 0 28px; color:#67605a; font-size:16px; line-height:1.8; }
.studio-copy ul { padding:0; margin:0 0 30px; list-style:none; }
.studio-copy li { display:flex; gap:13px; padding:12px 0; border-bottom:1px solid rgba(123,90,47,.2); font-size:14px; }
.studio-copy li span { color:var(--gold-dark); }
.price-section { display:grid; grid-template-columns:.7fr 1.3fr; gap:clamp(70px,10vw,160px); align-items:start; background:var(--paper); }
.price-intro { position:sticky; top:120px; }
.price-intro .eyebrow { margin-bottom:22px; }
.price-intro>p:not(.eyebrow) { max-width:420px; color:#6b645e; line-height:1.7; margin:26px 0 30px; }
.button-outline { border:1px solid var(--ink); background:transparent; }
.button-outline:hover { color:white; background:var(--ink); }
.price-groups details { border-top:1px solid var(--line); }
.price-groups details:last-of-type { border-bottom:1px solid var(--line); }
.price-groups summary { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:25px 0; cursor:pointer; list-style:none; font:500 clamp(24px,2.6vw,38px)/1 Georgia,serif; }
.price-groups summary::-webkit-details-marker { display:none; }
.price-groups summary b { font:300 28px/1 Arial,sans-serif; color:var(--gold); transition:transform .2s; }
.price-groups details[open] summary b { transform:rotate(45deg); }
.price-list { padding:0 0 22px; }
.price-list>div { display:flex; justify-content:space-between; gap:20px; padding:11px 0; color:#635d58; font-size:13px; }
.price-list strong { color:var(--ink); white-space:nowrap; }
.price-note { margin-top:18px; color:#8b8279; font-size:10px; line-height:1.5; }
.booking-section { display:grid; grid-template-columns:1.25fr .75fr; }
.booking-card { padding:clamp(65px,8vw,120px) clamp(24px,7vw,112px); background:var(--gold-dark); color:white; }
.booking-card .eyebrow { color:#ead9c0; }
.booking-card h2 { font-size:clamp(50px,6vw,94px); }
.booking-card h2 em { color:#e1c59e; font-weight:400; }
.booking-card>p:not(.eyebrow) { max-width:570px; margin:30px 0; color:#eadfd0; line-height:1.7; }
.booking-actions { display:flex; flex-wrap:wrap; gap:12px; }
.button-light { background:white; color:var(--ink); }
.button-light:hover { background:var(--ink); color:white; }
.button-ghost { border:1px solid rgba(255,255,255,.45); color:white; }
.button-ghost:hover { background:white; color:var(--ink); }
.contact-card { display:flex; flex-direction:column; justify-content:center; gap:29px; padding:clamp(55px,6vw,90px); background:var(--ink); color:#f7f1e9; }
.contact-card>div:not(.contact-links) { border-bottom:1px solid rgba(255,255,255,.15); padding-bottom:22px; }
.contact-card a,.contact-card p { display:block; margin:0; font-size:13px; line-height:1.7; }
.contact-card a:hover { color:#e1c59e; }
.contact-label { margin-bottom:8px!important; color:#bba98f; text-transform:uppercase; letter-spacing:.16em; font-size:9px!important; }
.contact-links { display:flex; gap:28px; color:#e1c59e; text-transform:uppercase; letter-spacing:.08em; }
footer { min-height:150px; display:flex; align-items:center; justify-content:space-between; gap:28px; padding:35px clamp(24px,7vw,112px); background:#141312; color:#ddd4ca; border-top:1px solid rgba(255,255,255,.08); }
footer>p { margin:0; max-width:380px; font:italic 18px/1.4 Georgia,serif; text-align:center; color:#bcb1a6; }
footer>a:last-child { font-size:12px; text-transform:uppercase; letter-spacing:.1em; }
.footer-brand .brand-mark { color:#d5b27b; border-color:#a98048; }
.footer-brand strong { color:white; }
.footer-brand small { color:#9f958c; }
.whatsapp-float { position:fixed; z-index:20; right:24px; bottom:24px; width:54px; height:54px; display:grid; place-items:center; border-radius:50%; color:white; background:#285b43; box-shadow:0 12px 28px rgba(0,0,0,.18); font-size:11px; font-weight:700; }
.whatsapp-float:hover { transform:translateY(-2px); }
.mobile-booking { display:none; }
@media(max-width:860px){
  .site-header { height:76px; }
  nav { display:none; }
  .header-cta { padding:10px 12px; font-size:11px; }
  .hero { min-height:auto; grid-template-columns:1fr; padding-top:52px; }
  h1 { font-size:clamp(64px,20vw,94px); }
  .hero-lead { margin-top:32px; }
  .hero-visual { width:100%; max-width:560px; justify-self:center; }
  .hero-note { left:14px; bottom:24px; }
  .gold-orbit { right:-28px; }
  .section { padding:76px 24px; }
  .section-head,.studio-section,.price-section,.booking-section { grid-template-columns:1fr; }
  .section-head { align-items:start; gap:26px; margin-bottom:36px; }
  .service-grid { grid-template-columns:1fr 1fr; }
  .studio-section { padding:76px 24px; gap:52px; }
  .gallery-tall { min-height:500px; }
  .gallery-small { min-height:244px; }
  .price-intro { position:static; }
  .contact-card { padding:56px 24px; }
  footer { flex-direction:column; text-align:center; padding-bottom:94px; }
  .whatsapp-float { display:none; }
  .mobile-booking { position:fixed; z-index:30; bottom:0; left:0; right:0; display:grid; grid-template-columns:.7fr 1.3fr; padding:9px; background:rgba(255,253,250,.96); box-shadow:0 -8px 30px rgba(34,33,31,.1); }
  .mobile-booking a { display:grid; place-items:center; min-height:46px; font-size:12px; font-weight:700; }
  .mobile-booking a:last-child { color:white; background:var(--gold-dark); }
}
@media(max-width:520px){
  .brand small{display:none}.site-header .header-cta{display:none}.hero-actions{align-items:flex-start;flex-direction:column;gap:18px}.rating{align-items:flex-start;flex-wrap:wrap}.rating>span:last-child{width:100%;margin-left:48px;margin-top:-8px}
  .promise-strip { flex-wrap:wrap; gap:12px 18px; }
  .promise-strip span { width:calc(50% - 26px); }
  .promise-strip span:last-child { width:100%; }
  .service-grid { grid-template-columns:1fr; }
  .service-image { aspect-ratio:1.15; }
  .service-card p { min-height:0; }
  .studio-gallery { gap:8px; }
  .gallery-tall { min-height:390px; }
  .gallery-small { min-height:191px; }
  .price-list>div { font-size:12px; }
  .booking-actions { flex-direction:column; align-items:stretch; }
  .contact-links { flex-direction:column; gap:10px; }
}
@media(prefers-reduced-motion:reduce){ html{scroll-behavior:auto} *{transition:none!important} }
