@font-face { font-family:Bodoni; src:url('/fonts/bodoni-moda.woff2') format('woff2'); font-weight:400 700; font-display:swap } @font-face { font-family:Montserrat; src:url('/fonts/montserrat.woff2') format('woff2'); font-weight:400 700; font-display:swap } :root { --cream:#fff9f1; --paper:#fffdf9; --ink:#262625; --muted:#6e665e; --gold:#b38c4a; --gold-dark:#785c2e; --line:#dfd4c3; --soft:#f2eadf; --danger:#8d2f24; --green:#35634a; --serif:Bodoni,Didot,'Bodoni MT',Georgia,serif; --sans:Montserrat,'Avenir Next',Arial,sans-serif } /* Small screens retain every field and action without sideways table navigation. */ @media (max-width: 520px) { .admin-table, .admin-table tbody { display: block; width: 100%; } .admin-table caption { display: block; width: 100%; padding: 12px 14px; text-align: left; font-size: 10px; } .admin-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); } .admin-table tbody tr { display: grid; grid-template-columns: 1fr 1fr; border-bottom: 1px solid var(--line); padding: 14px; gap: 8px 18px; } .admin-table tbody tr:last-child { border-bottom: 0; } .admin-table tbody th { grid-column: 1 / -1; padding: 0 0 8px; background: transparent; border: 0; font-size: 14px; white-space: normal; } .admin-table tbody th small { font-size: 10px; font-weight: 400; overflow-wrap: anywhere; } .admin-table tbody td { display: flex; flex-direction: column; padding: 0; border: 0; font-size: 12px; min-width: 0; overflow-wrap: anywhere; } .admin-table td[data-label]::before { content: attr(data-label); font-size: 9px; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); } .admin-table td[data-label="Ação"] { grid-column: 1 / -1; padding-top: 6px; } .admin-table td[data-label="Ação"]::before { display: none; } .admin-table td .badge { align-self: flex-start; } } * { box-sizing:border-box } html, body { width:100%; max-width:100%; overflow-x:hidden } html { scroll-behavior:smooth; scroll-padding-top:100px } @supports (overflow:clip) { body { overflow-x:clip } } @media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto } } body { margin:0; background:var(--cream); color:var(--ink); font-family:var(--sans); font-size:14px; line-height:1.7 } a { color:inherit; text-decoration:none } button,input,select,textarea { font:inherit } button,a,input,textarea,select { -webkit-tap-highlight-color:transparent } button { cursor:pointer } button:disabled { cursor:not-allowed; opacity:.6 } img { display:block; max-width:100%; height:auto } h1,h2,h3,p { margin:0 } h1,h2 { font-family:var(--serif); font-weight:400; line-height:1.08; letter-spacing:-.055em } h1 { font-size:clamp(48px,6.2vw,92px) } h2 { font-size:clamp(36px,4vw,60px) } h3 { font-weight:500 } em { font-family:var(--serif); font-style:italic; font-weight:400; color:var(--gold-dark) } p { color:var(--muted) } [hidden] { display:none!important } :focus-visible { outline:2px solid var(--gold-dark); outline-offset:5px } .icon { width:22px; height:22px; flex-shrink:0 } .sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0 } .skip-link { position:fixed; top:-100px; left:20px; background:var(--ink); color:white; padding:15px; z-index:100 } .skip-link:focus { top:10px } .eyebrow { display:block; text-transform:uppercase; letter-spacing:.19em; font-size:10px; font-weight:600; line-height:1.6; color:var(--gold-dark) } .btn { display:inline-flex; align-items:center; justify-content:center; gap:22px; min-height:50px; padding:13px 24px; border:1px solid var(--ink); font-size:11px; letter-spacing:.03em; font-weight:500; border-radius:2px; line-height:1.5; transition:background .2s,color .2s,transform .2s } .btn-primary { background:var(--ink); color:var(--cream) } .btn-primary:hover { background:#4a3b2d; border-color:#4a3b2d } .btn-outline { background:transparent; color:var(--ink) } .btn-outline:hover { background:var(--soft) } .text-button { border:0; background:none; color:inherit; font-size:inherit; padding:10px 0; min-height:44px; text-decoration:underline; text-underline-offset:5px } .text-link { display:inline-flex; align-items:center; gap:35px; font-size:12px; min-height:44px; border-bottom:1px solid var(--gold) } .full-width { width:100% } .site-header { height:106px; padding:8px 5%; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); gap:30px } .brand { display:block; width:105px; flex-shrink:0 } .brand img { width:100% } .site-header nav { display:flex; gap:36px; font-size:11px } .site-header nav a { padding:12px 0 } .site-header nav a:hover { color:var(--gold-dark) } .header-cta { display:flex; align-items:center; gap:20px; font-size:11px; border-bottom:1px solid var(--gold); padding:9px 0 } .header-cta .icon { width:18px } .hero { max-width:1600px; margin:auto; display:grid; grid-template-columns:46% 54%; padding:40px 5% 55px; min-height:660px; gap:0 } .hero-copy { padding:47px 0 0; position:relative; z-index:1 } .hero-copy .eyebrow { display:flex; align-items:center; gap:14px; margin-bottom:26px } .small-line { width:32px; height:1px; background:var(--gold) } .hero h1 { margin-bottom:23px } .hero-copy p { font-size:13px; line-height:1.9; margin-bottom:31px } .hero-discover { display:flex; gap:26px; width:max-content; font-size:10px; margin-top:30px; align-items:center; min-height:40px } .hero-discover span { font-size:20px; color:var(--gold-dark) } .hero-media { position:relative; margin-left:13px; min-height:565px } .hero-media picture { display:block; width:100%; height:100%; overflow:hidden; border-radius:45% 45% 0 0 / 34% 34% 0 0 } .hero-media picture img { width:100%; height:100%; object-fit:cover; object-position:51% center } .photo-caption { position:absolute; bottom:22px; left:25px; font-family:var(--serif); font-style:italic; font-size:22px; color:white; text-shadow:0 1px 8px #000 } .hero-seal { position:absolute; left:-48px; top:56%; width:125px; height:125px; background:var(--cream); border-radius:50%; display:flex; align-items:center; justify-content:center; gap:10px; box-shadow:0 0 0 10px #fff9f13b } .hero-seal img { width:18px; height:auto } .hero-seal span { font-size:9px; line-height:1.6; letter-spacing:.02em } .brand-line { display:flex; align-items:center; justify-content:center; gap:6vw; padding:24px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); font-size:10px; text-transform:uppercase; letter-spacing:.2em } .brand-line i { width:4px; height:4px; background:var(--gold); transform:rotate(45deg) } .section-space { padding:95px 5%; max-width:1600px; margin:auto } .section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:30px; margin-bottom:40px } .section-heading .eyebrow { margin-bottom:17px } .section-heading p { font-size:12px; line-height:1.9; margin-bottom:3px } .catalog-section { padding-bottom:75px } .catalog-tools { display:flex; flex-direction:column; gap:20px } .category-strip { position:relative; min-width:0 } .category-tabs-viewport { width:100%; max-width:100%; min-width:0; overflow-x:hidden } .category-tabs { display:flex; gap:4px; width:100%; min-width:0; overflow-x:auto; overflow-y:hidden; scrollbar-width:thin; padding-bottom:10px; max-width:100% } .category-scroll-controls { display:none } .category-tab { background:transparent; border:1px solid transparent; padding:10px 17px; min-height:44px; white-space:nowrap; color:var(--muted); border-radius:2px; font-size:11px } .category-tab:hover { background:var(--soft) } .category-tab.is-active { color:var(--cream); background:var(--ink); border-color:var(--ink) } .search-field { display:flex; gap:13px; align-items:center; border-bottom:1px solid var(--line); max-width:360px; padding:0 0 8px } .search-field .icon { width:18px; color:var(--muted) } .search-field input { background:none; border:0; outline-offset:3px; padding:8px 0; min-height:35px; width:100%; font-size:11px; color:var(--ink) } .catalog-meta { display:flex; justify-content:space-between; font-size:10px; margin:25px 0 17px; color:var(--muted) } [data-catalog-count-number] { color:var(--gold-dark); font-weight:700 } .service-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:27px } .service-card { border:1px solid var(--line); background:var(--paper); display:flex; flex-direction:column; transition:border-color .2s } .service-card.is-selected { border-color:var(--gold) } .service-image { aspect-ratio:1.65; overflow:hidden; position:relative; background:var(--soft) } .service-image>img { width:100%; height:100%; object-fit:cover; transition:transform .5s } .service-card:hover .service-image>img { transform:scale(1.035) } .service-kind { position:absolute; bottom:12px; left:14px; background:var(--cream); padding:4px 9px; font-size:8px; text-transform:uppercase; letter-spacing:.08em } .service-body { padding:23px; display:flex; flex-direction:column; flex:1 } .service-body h3 { font-family:var(--serif); font-size:28px; letter-spacing:-.02em; line-height:1.2; margin-bottom:12px } .service-body>p { font-size:11px; line-height:1.8 } .service-note { margin-top:10px; font-size:10px; color:var(--muted) } .service-note summary { cursor:pointer; min-height:28px; text-decoration:underline; text-underline-offset:3px } .service-note p { padding:5px 0 10px } .service-bottom { display:flex; align-items:flex-end; justify-content:space-between; gap:8px; margin-top:auto; padding-top:24px } .service-price small { display:block; text-transform:uppercase; letter-spacing:.09em; font-size:8px; line-height:1.6; margin-bottom:4px; color:var(--muted) } .service-price strong { font-size:15px; font-weight:500; white-space:nowrap } .select-control { display:inline-flex; align-items:center; gap:9px; font-size:10px; min-height:44px; cursor:pointer; position:relative } .select-control input { position:absolute; opacity:0; inset:0; width:100%; height:100%; cursor:pointer; margin:0 } .select-symbol { border:1px solid var(--line); display:grid; place-items:center; width:30px; height:30px; font-size:20px; font-weight:400 } .select-control:has(input:checked) .select-symbol { background:var(--ink); color:var(--cream); border-color:var(--ink) } .select-control:has(input:focus-visible) { outline:2px solid var(--gold-dark); outline-offset:4px } .catalog-footnote { text-align:center; font-size:10px; line-height:1.9; margin-top:32px } .empty-state { padding:60px 20px; text-align:center; border:1px solid var(--line); grid-column:1/-1 } .empty-state .icon { margin:0 auto 20px } .empty-state h3 { font-family:var(--serif); font-size:30px } .empty-state p { margin:10px 0 20px } .selection-bar { position:fixed; z-index:30; bottom:22px; left:50%; transform:translateX(-50%); width:min(720px,calc(100% - 32px)); background:var(--paper); border:1px solid var(--line); padding:14px 16px 14px 22px; box-shadow:0 8px 45px #26262520; display:flex; align-items:center; justify-content:space-between; gap:20px } .selection-bar-summary { display:flex; gap:16px; align-items:flex-start; min-width:0 } .selection-bar-summary>span { min-width:0 } .selection-bar strong { display:block; font-size:12px; font-weight:500 } .selection-bar small { display:block; font-size:10px; color:var(--muted) } .selection-view-button { appearance:none; display:flex; align-items:center; gap:6px; min-height:30px; margin:3px 0 -5px; padding:3px 0; border:0; background:transparent; color:var(--gold-dark); font-size:9px; font-weight:600; text-decoration:underline; text-underline-offset:3px } .selection-view-button .icon { width:13px; height:13px } .space-section { display:grid; grid-template-columns:1.1fr 1fr; gap:12%; border-top:1px solid var(--line); align-items:center } .space-images { position:relative; padding:0 17% 65px 0 } .space-main { width:100%; aspect-ratio:.87; object-fit:cover; border-radius:44% 44% 0 0 / 30% 30% 0 0 } .space-detail { position:absolute; bottom:15px; right:0; width:54%; aspect-ratio:1.2; object-fit:cover; border:9px solid var(--cream) } .image-credit { position:absolute; bottom:5px; left:0; font-size:8px; letter-spacing:.05em; color:var(--muted) } .space-copy>.eyebrow { margin-bottom:21px } .space-copy h2 { margin-bottom:28px } .space-copy p { font-size:12px; line-height:1.9; margin-bottom:18px; max-width:410px } .space-copy .text-link { margin:8px 0 28px } .space-location { display:flex; align-items:center; gap:14px; border-top:1px solid var(--line); padding-top:22px; font-size:10px; line-height:1.8; color:var(--muted) } .space-location .icon { color:var(--gold-dark) } .links-section { background:var(--soft); max-width:none; padding-top:80px; padding-bottom:90px } .useful-links { display:grid; grid-template-columns:1fr 1fr; gap:0 45px } .useful-link { display:flex; align-items:center; gap:23px; border-bottom:1px solid #d2c6b5; min-height:105px; font-size:14px } .link-icon { color:var(--gold-dark); display:grid; place-items:center; border:1px solid #d2c6b5; border-radius:50%; height:48px; width:48px; flex-shrink:0 } .link-arrow { margin-left:auto; color:var(--gold-dark); font-size:22px; transition:transform .2s } .useful-link:hover .link-arrow { transform:translate(3px,-3px) } .site-footer { padding:55px 5% 20px; background:var(--ink); color:var(--cream) } .footer-top { display:flex; justify-content:space-between; align-items:center; padding-bottom:42px; gap:30px } .footer-brand { width:125px } .footer-top p { font-family:var(--serif); font-size:34px; line-height:1.2; color:var(--cream); letter-spacing:-.03em } .footer-top em { color:#d4bb79 } .footer-top-link { font-size:10px } .footer-bottom { border-top:1px solid #ffffff25; padding-top:20px; display:flex; justify-content:space-between; align-items:center; gap:20px; font-size:9px; color:#d6cbbd } .footer-bottom>div { display:flex; align-items:center; gap:24px } .developer-credit { display:flex; justify-content:center; padding:10px 5% 12px; border-top:1px solid #d4bb7952; background:#1d1d1c; color:#d6cbbd } .developer-credit__link { display:inline-flex; min-height:44px; align-items:center; justify-content:center; gap:.5em; font-size:9px } .developer-credit__link:before { content:""; width:18px; height:1px; margin-right:5px; background:#d4bb79; transition:width .2s ease } .developer-credit__link span { text-transform:uppercase; letter-spacing:.14em } .developer-credit__link strong { border-bottom:1px solid transparent; color:#d4bb79; font-family:var(--serif); font-size:15px; font-style:italic; font-weight:400; letter-spacing:0; line-height:1.2; transition:border-color .2s ease,color .2s ease } @media(hover:hover) and (pointer:fine) { .developer-credit__link:hover:before { width:28px } .developer-credit__link:hover strong { border-color:#d4bb79; color:var(--cream) } } .cookie-panel { position:fixed; bottom:20px; left:20px; width:430px; max-width:calc(100% - 40px); z-index:60; padding:23px; background:var(--paper); border:1px solid var(--line); box-shadow:0 10px 50px #26262525 } .cookie-panel p { font-size:11px; line-height:1.8; margin:10px 0 15px } .cookie-panel p a { text-decoration:underline } .cookie-actions { display:flex; align-items:center; gap:11px; flex-wrap:wrap } .cookie-actions .btn { padding:10px 15px; min-height:43px; font-size:10px } .cookie-actions .text-button { font-size:9px } .selection-dialog { width:min(560px,calc(100vw - 32px)); max-width:calc(100vw - 32px); max-height:min(760px,calc(100dvh - 32px)); padding:32px; border:1px solid var(--line); border-radius:3px; background:var(--paper); color:var(--ink); box-shadow:0 24px 90px #2626254d; overflow:auto } .selection-dialog::backdrop { background:#26262591; backdrop-filter:blur(3px) } .selection-dialog-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; margin-bottom:25px } .selection-dialog-heading .eyebrow { margin-bottom:7px } .selection-dialog-heading h2 { font-size:38px } .selection-dialog-close { appearance:none; display:grid; place-items:center; width:44px; height:44px; flex:0 0 44px; padding:0; border:1px solid var(--line); border-radius:50%; background:var(--paper); color:var(--ink) } .selection-dialog-close .icon { width:18px; height:18px } .booking-dialog { position:fixed } .booking-dialog-close { position:absolute; z-index:1; top:24px; right:24px } .selection-summary-list { max-height:min(390px,45dvh); overflow:auto; border-top:1px solid var(--line) } .selection-summary-item { display:flex; align-items:center; gap:16px; padding:16px 0; border-bottom:1px solid var(--line) } .selection-summary-item>img { width:64px; height:64px; flex:0 0 64px; object-fit:cover } .selection-summary-item>div { flex:1; min-width:0 } .selection-summary-item h3 { font-size:12px; line-height:1.45 } .selection-summary-item span { font-size:10px; color:var(--muted) } .selection-summary-remove { min-height:44px; padding:8px; color:var(--gold-dark); font-size:10px } .selection-summary-total { display:flex; justify-content:space-between; gap:20px; padding:20px 0 8px; font-size:12px } .selection-summary-total strong { text-align:right; font-weight:600 } .selection-dialog-actions,.booking-step-actions { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-top:24px } .selection-dialog-actions .text-button,.booking-step-actions .text-button { min-height:44px; padding:7px 0; color:var(--gold-dark); font-size:10px } .booking-step-actions .text-button { display:inline-flex; align-items:center; gap:8px } .booking-step-actions .text-button .icon { width:15px; height:15px } .booking-step h3,.no-script-booking h3 { font-family:var(--serif); font-size:34px; font-weight:400; line-height:1.1; letter-spacing:-.04em } .booking-step h3 { padding-right:64px } .booking-step>p { margin:8px 0 25px; font-size:11px } .booking-field { margin:0 } .booking-consent { padding-top:18px; border-top:1px solid var(--line) } .consent-field.is-error { color:var(--danger) } .consent-hint { display:block; margin:-18px 0 20px 28px; color:var(--danger); font-size:10px } .no-script-booking { max-width:620px; margin:40px auto 120px; padding:30px; border:1px solid var(--line); background:var(--paper) } .no-script-booking h3 { margin:7px 0 25px } .field { display:flex; flex-direction:column; gap:7px; margin-bottom:20px; min-width:0 } .field label { font-size:12px; font-weight:500 } .field input,.field textarea,.field select { width:100%; min-width:0; padding:12px 14px; border:1px solid var(--line); border-radius:2px; background:var(--paper); color:var(--ink); min-height:48px; font-size:14px } #customer-name,#fallback-customer-name { font-size:16px } .field textarea { min-height:130px; resize:vertical } .field small { font-size:11px; color:var(--muted) } .schedule-fields { width:100%; max-width:100%; min-width:0; margin:7px 0 0; padding:23px 0 0; border:0; border-top:1px solid var(--line) } .schedule-fields legend { float:left; width:100%; padding:0; font-family:var(--serif); font-size:23px; line-height:1.2; letter-spacing:-.03em } .schedule-fields>p { clear:both; padding-top:8px; font-size:11px; line-height:1.7 } .schedule-grid { display:grid; width:100%; max-width:100%; min-width:0; grid-template-columns:minmax(0,1fr); gap:17px; margin-top:16px } .schedule-grid .field { width:100%; max-width:100%; min-width:0; margin-bottom:0 } .schedule-picker { position:relative; width:100%; max-width:100%; min-width:0 } .schedule-grid input { display:block; width:100%; max-width:100%; min-width:0; inline-size:100%; max-inline-size:100%; min-inline-size:0; color-scheme:light } .schedule-grid input::-webkit-calendar-picker-indicator { cursor:pointer; opacity:.62 } .schedule-picker.is-enhanced>.schedule-native { position:absolute; width:1px; height:1px; min-height:0; padding:0; margin:0; border:0; opacity:0; pointer-events:none; clip-path:inset(50%) } .schedule-trigger { appearance:none; -webkit-appearance:none; display:flex; align-items:center; justify-content:space-between; gap:14px; width:100%; max-width:100%; min-width:0; min-height:48px; padding:12px 14px; border:1px solid var(--line); border-radius:2px; background:var(--paper); color:var(--muted); text-align:left; font-size:14px } .schedule-trigger.has-value { color:var(--ink) } .schedule-trigger .icon { width:19px; height:19px; flex:0 0 19px; color:var(--gold-dark) } .field small.is-error { color:var(--danger); font-weight:500 } .schedule-dialog { width:min(390px,calc(100vw - 24px)); max-width:calc(100vw - 24px); max-height:min(680px,calc(100dvh - 24px)); padding:24px; border:1px solid var(--line); border-radius:3px; background:var(--paper); color:var(--ink); box-shadow:0 24px 80px #26262545; overflow:auto } .schedule-dialog::backdrop { background:#26262585; backdrop-filter:blur(2px) } .schedule-dialog-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-bottom:22px } .schedule-dialog-heading .eyebrow { display:block; margin-bottom:5px } .schedule-dialog-heading h3 { font-family:var(--serif); font-size:27px; line-height:1.1; letter-spacing:-.03em } .schedule-dialog-close,.calendar-nav button { appearance:none; display:grid; place-items:center; width:44px; height:44px; flex:0 0 44px; padding:0; border:1px solid var(--line); border-radius:50%; background:var(--paper); color:var(--ink) } .schedule-dialog-close .icon,.calendar-nav .icon { width:18px; height:18px } .calendar-nav { display:grid; grid-template-columns:44px 1fr 44px; align-items:center; gap:10px; margin-bottom:17px } .calendar-nav strong { text-align:center; font-family:var(--serif); font-size:19px; font-weight:500 } .calendar-nav button:disabled { opacity:.35 } .calendar-weekdays,.calendar-days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:5px } .calendar-weekdays { margin-bottom:7px; color:var(--muted); font-size:9px; font-weight:600; text-align:center } .calendar-days button,.calendar-days span { aspect-ratio:1; min-width:0 } .calendar-days button { appearance:none; display:grid; place-items:center; padding:0; border:1px solid var(--line); border-radius:50%; background:var(--paper); color:var(--ink); font-size:12px } .calendar-days button:not(:disabled):hover { border-color:var(--gold-dark) } .calendar-days button[aria-current=date] { border-color:var(--ink); background:var(--ink); color:var(--cream) } .calendar-days button:disabled,.time-options button:disabled { border-color:#e8e1d8; background:#f2eee8; color:#aaa29a; cursor:not-allowed; opacity:1 } .schedule-disabled-note,.schedule-dialog-intro { font-size:10px; line-height:1.65; color:var(--muted) } .schedule-disabled-note { display:flex; align-items:center; gap:8px; margin-top:17px } .schedule-disabled-note>span { width:16px; height:16px; flex:0 0 16px; border:1px solid #e8e1d8; border-radius:50%; background:#f2eee8 } .schedule-dialog-intro { margin:-8px 0 16px } .time-options { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px } .time-options button { appearance:none; min-width:0; min-height:44px; padding:8px 5px; border:1px solid var(--line); border-radius:2px; background:var(--paper); color:var(--ink); font-size:11px } .time-options button:not(:disabled):hover { border-color:var(--gold-dark) } .time-options button[aria-current=true] { border-color:var(--ink); background:var(--ink); color:var(--cream) } input[type=checkbox] { accent-color:var(--ink); width:18px; height:18px; flex-shrink:0 } .consent-field { display:flex; align-items:flex-start; gap:10px; font-size:10px; line-height:1.8; margin:25px 0 } .consent-field a { text-decoration:underline } .form-note,.muted { font-size:11px; color:var(--muted); line-height:1.8 } .form-note { margin-top:20px } .notice { padding:17px 22px; border:1px solid var(--line); margin:20px 0; font-size:12px } .notice.error { border-color:#d49b89; color:var(--danger); background:#fff1ea } .notice.success { border-color:#a2b5a5; color:var(--green); background:#f0f7ee } .notice ul { padding-left:18px; margin:8px 0 } .legal-page { max-width:880px; padding-top:70px } .legal-page h1 { margin:20px 0 25px } .legal-page h2 { font-size:30px; margin:40px 0 15px; letter-spacing:-.025em } .legal-page p { font-size:13px; margin:14px 0; line-height:1.9 } .legal-page a { text-decoration:underline; text-underline-offset:3px } .admin-body { background:#f8f4ed } .admin-header { height:90px; display:flex; gap:28px; align-items:center; padding:10px 4%; border-bottom:1px solid var(--line); background:var(--cream) } .admin-header .brand { width:85px } .admin-header>.text-link { margin-left:auto } .admin-shell { display:flex; max-width:1600px; margin:auto } .admin-nav { display:flex; flex-direction:column; width:220px; flex-shrink:0; padding:30px 25px; gap:3px; border-right:1px solid var(--line); font-size:12px } .admin-nav>a,.admin-nav form button { min-height:44px; padding:10px; text-align:left } .admin-nav a:hover,.admin-nav a[aria-current] { background:var(--soft); color:var(--gold-dark) } .admin-main { padding:45px 4%; flex:1; min-width:0 } .admin-main h1 { font-size:42px; letter-spacing:-.04em } .admin-main h2 { font-size:29px } .admin-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:28px } .admin-heading p { font-size:12px; margin-top:10px } .panel { background:var(--paper); border:1px solid var(--line); padding:26px; margin-bottom:25px } .panel h2 { margin-bottom:20px } .field-grid { display:grid; grid-template-columns:1fr 1fr; gap:0 22px } .form-actions { display:flex; align-items:center; gap:20px; margin-top:25px; flex-wrap:wrap } .filters { display:flex; align-items:end; gap:16px; flex-wrap:wrap; margin-bottom:25px } .filters .field { flex:1; min-width:145px; margin-bottom:0 } .table-wrap { overflow-x:auto; border:1px solid var(--line); background:var(--paper) } .admin-table { width:100%; border-collapse:collapse; font-size:12px } .admin-table th { background:var(--soft); text-align:left; font-weight:500; font-size:10px; white-space:nowrap } .admin-table td,.admin-table th { padding:16px; border-bottom:1px solid var(--line); vertical-align:middle } .admin-table td .btn { padding:8px 12px; min-height:40px; white-space:nowrap } .admin-table img { width:56px; height:56px; object-fit:cover } .badge { font-size:9px; display:inline-block; padding:4px 9px; border:1px solid var(--line); white-space:nowrap } .auth-panel { max-width:440px; margin:10px auto 50px; border:1px solid var(--line); background:var(--paper); padding:38px } .auth-panel h1 { font-size:38px; margin:16px 0 } .auth-panel p { font-size:12px; margin:15px 0 25px } .auth-panel form { margin-top:27px } .admin-main nav[role=navigation] { margin:25px 0 } .admin-main nav[role=navigation] svg { width:20px; height:20px } .admin-main nav[role=navigation] a,.admin-main nav[role=navigation] span { display:inline-block; padding:4px } .admin-main input[type=file] { font-size:11px } .admin-main .preview-image { max-height:190px; width:auto; margin:10px 0 } .admin-main .inline-form { display:inline } .admin-main .checkbox-field { display:flex; gap:10px; align-items:center; min-height:44px } .admin-main .field-error { font-size:11px; color:var(--danger) } .admin-main .help-text { font-size:11px; color:var(--muted) } @media(min-width:1450px) { .hero { padding-top:55px; padding-bottom:65px } .hero-copy { padding-top:60px } .hero-media { min-height:650px } } @media(max-width:1050px) { .site-header nav { gap:22px } .hero { min-height:600px } .hero-media { min-height:495px } .hero-copy { padding-top:35px } .hero h1 { font-size:70px } .hero-seal { width:108px; height:108px; left:-36px } .section-space { padding-top:70px; padding-bottom:70px } .service-grid { gap:18px } .service-body { padding:18px } .service-body h3 { font-size:25px } .service-bottom { flex-wrap:wrap } .section-heading p { max-width:290px } .space-section { gap:7% } .admin-nav { width:180px; padding:25px 14px } .admin-main { padding:30px 3% } } @media(max-width:760px) { .site-header { height:83px; padding:5px 6%; gap:18px } .brand { width:87px } .site-header nav { gap:18px; margin-left:auto } .site-header nav a { font-size:10px } .site-header nav a:first-child { display:none } .header-cta { display:none } .hero { padding:25px 6% 35px; min-height:0; grid-template-columns:1fr 1fr; gap:18px } .hero-copy { padding-top:20px } .hero h1 { font-size:54px } .hero-copy .eyebrow { font-size:8px; letter-spacing:.12em; gap:9px; margin-bottom:22px } .small-line { width:20px } .hero-copy p { font-size:11px } .hero-copy .btn { padding:12px 16px; font-size:10px; gap:12px } .hero-media { margin:0; min-height:420px } .hero-seal { left:-26px; top:65%; width:90px; height:90px; gap:6px } .hero-seal img { width:13px } .hero-seal span { font-size:7px } .photo-caption { font-size:18px; left:15px } .brand-line { gap:5%; font-size:8px; letter-spacing:.1em; padding:20px 5% } .section-space { padding:60px 6% } .section-heading { display:block; margin-bottom:28px } .section-heading p { margin-top:20px; max-width:none; font-size:11px } .section-heading h2 { font-size:42px } .service-grid { grid-template-columns:1fr 1fr; gap:17px } .service-body { padding:16px } .service-body h3 { font-size:25px } .service-body>p { font-size:10px } .service-price strong { font-size:13px } .select-control { gap:7px; font-size:9px } .select-symbol { width:27px; height:27px } .category-tab { font-size:10px; padding:9px 14px } .space-section { gap:7%; grid-template-columns:1fr 1fr } .space-copy h2 { font-size:36px } .space-copy p { font-size:11px } .space-images { padding-bottom:45px } .space-detail { width:67%; border-width:6px; bottom:20px } .space-main { aspect-ratio:.65 } .image-credit { font-size:7px } .useful-links { gap:0 25px } .useful-link { font-size:11px; gap:15px; min-height:90px } .link-icon { width:40px; height:40px } .footer-top p { font-size:27px } .footer-brand { width:90px } .footer-bottom { flex-wrap:wrap; font-size:8px } .footer-bottom>div { gap:15px } .footer-top-link { font-size:8px } .admin-header { height:80px } .admin-header .eyebrow { font-size:8px } .admin-shell { display:block } .admin-nav { flex-direction:row; overflow-x:auto; width:100%; padding:10px 4%; border-right:0; border-bottom:1px solid var(--line); white-space:nowrap; gap:10px } .admin-nav>a { padding:10px; font-size:11px } .admin-nav form { display:flex } .admin-main { padding:28px 5% } .admin-main h1 { font-size:34px } .admin-heading { align-items:flex-start } .admin-heading .btn { font-size:10px; padding:11px 14px; gap:10px } .field-grid { grid-template-columns:1fr } .panel { padding:22px } .filters { gap:12px } .admin-table td,.admin-table th { padding:13px } .auth-panel { padding:28px; margin-top:5px } } @media(max-width:520px) { .hero { display:flex; flex-direction:column; padding-top:15px; gap:30px } .hero-copy { padding-top:12px } .hero-copy .eyebrow { font-size:8px; margin-bottom:22px } .hero h1 { font-size:66px; line-height:1.01; letter-spacing:-.06em; margin-bottom:22px } .hero-copy p { font-size:12px; line-height:1.8; margin-bottom:24px } .hero-copy .btn { min-height:49px; font-size:11px; padding:13px 21px; gap:22px } .hero-discover { position:absolute; right:0; bottom:0; gap:9px; font-size:8px; max-width:103px; line-height:1.7; margin:0 } .hero-discover span { font-size:19px } .hero-media { height:320px; min-height:0; width:100%; padding-left:32px } .hero-media picture { border-radius:48% 48% 0 0 / 40% 40% 0 0 } .hero-media picture img { object-position:center 53% } .hero-seal { top:54%; left:0; width:96px; height:96px } .photo-caption { left:55px; bottom:17px; font-size:19px } .brand-line { font-size:7px; gap:5%; padding:18px 4%; letter-spacing:.08em } .brand-line i { width:3px; height:3px } .brand-line span:last-child { display:none } .brand-line i:last-of-type { display:none } .section-space { padding-top:52px; padding-bottom:52px } .section-heading h2 { font-size:37px } .section-heading .eyebrow { font-size:8px; letter-spacing:.16em; margin-bottom:14px } .service-grid { grid-template-columns:1fr; gap:22px } .service-image { aspect-ratio:1.8 } .service-body { padding:22px } .service-body h3 { font-size:30px } .service-body>p { font-size:12px } .service-price strong { font-size:16px } .service-price small { font-size:8px } .service-bottom { padding-top:20px; flex-wrap:nowrap } .select-control { font-size:11px; gap:11px } .select-symbol { width:33px; height:33px } .service-note { font-size:11px; margin-top:13px } .catalog-meta { font-size:10px } .category-strip { padding-top:32px } .category-strip[data-category-enhanced] .category-scroll-controls { position:absolute; top:-13px; right:0; z-index:2; display:flex; gap:3px; color:var(--gold-dark) } .category-scroll-controls button { display:grid; place-items:center; width:44px; height:44px; padding:0; border:0; background:transparent; color:inherit } .category-scroll-controls button:disabled { opacity:.25 } .category-scroll-controls .icon { width:17px; height:17px } .category-tabs { scrollbar-width:none; scroll-snap-type:x proximity; overscroll-behavior-inline:contain } .category-tabs::-webkit-scrollbar { display:none } .category-tab { scroll-snap-align:start } .catalog-tools { gap:15px } .catalog-footnote { font-size:9px } .selection-bar { bottom:10px; width:calc(100% - 20px); padding:11px 12px; gap:10px } .selection-bar-summary { gap:10px } .selection-bar-summary>.icon { width:19px } .selection-bar strong { font-size:10px } .selection-bar small { font-size:9px } .selection-bar .btn { padding:11px 14px; font-size:10px; gap:9px } .selection-bar .btn .icon { width:17px } .selection-dialog { width:calc(100vw - 12px); max-width:calc(100vw - 12px); max-height:calc(100dvh - 12px); margin:auto 6px 6px; padding:24px 20px; border-radius:8px 8px 0 0 } .selection-dialog-heading { margin-bottom:20px } .selection-dialog-heading h2 { font-size:33px } .selection-summary-list { max-height:42dvh } .selection-summary-item { gap:11px } .selection-summary-item>img { width:54px; height:58px; flex-basis:54px } .selection-dialog-actions,.booking-step-actions { align-items:stretch; flex-direction:column-reverse; gap:8px } .selection-dialog-actions .btn,.booking-step-actions .btn { width:100% } .selection-dialog-actions .text-button,.booking-step-actions .text-button { align-self:center; padding:8px } .booking-step h3 { font-size:30px } .booking-step>p { margin-bottom:20px } .space-section { display:flex; flex-direction:column; gap:35px } .space-images { width:100%; max-width:390px; padding-right:20%; padding-bottom:60px } .space-main { aspect-ratio:.82 } .space-detail { width:56%; bottom:17px } .image-credit { font-size:8px } .space-copy h2 { font-size:43px } .space-copy p { font-size:12px } .space-copy .eyebrow { font-size:8px } .space-copy .text-link { margin-bottom:24px } .space-location { font-size:11px } .useful-links { grid-template-columns:1fr } .useful-link { font-size:12px; min-height:92px; gap:22px } .link-icon { width:44px; height:44px } .links-section .section-heading { margin-bottom:14px } .site-footer { padding:35px 6% } .footer-top { align-items:center; gap:20px; position:relative; padding-bottom:55px } .footer-brand { width:100px } .footer-top p { font-size:26px } .footer-top-link { position:absolute; bottom:15px; right:0; font-size:9px } .footer-bottom { gap:15px; align-items:flex-start } .footer-bottom>div { flex-wrap:wrap; gap:8px 18px; order:3; font-size:9px } .developer-credit { padding:10px 6% 18px } .developer-credit__link { flex-wrap:wrap; gap:.35em .5em } .cookie-panel { bottom:10px; left:10px; max-width:calc(100% - 20px); padding:20px } .cookie-panel .eyebrow { font-size:9px } .cookie-actions { gap:9px } .cookie-actions .text-button { font-size:9px } .legal-page h1 { font-size:51px } .legal-page h2 { font-size:27px } .legal-page p { font-size:12px } .admin-main .btn { min-height:44px } .admin-heading { flex-wrap:wrap } .auth-panel { border:0; background:transparent; padding:10px 0 } .filters .field { min-width:100% } .filters .btn { flex:1 } .admin-header .text-link { font-size:10px } } @media(max-width:350px) { .calendar-nav strong { font-size:17px } } @media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto } *,*:before,*:after { animation:none!important; transition:none!important } } /* Home-only loading veil: hidden in the no-JavaScript baseline and activated by the early external boot. */ html[data-seve-loader] { overflow: hidden; overscroll-behavior: none; } html[data-seve-loader] body { overflow: hidden; touch-action: none; } .home-loader { display: none; } html[data-seve-loader] .home-loader { --loader-progress: 0; position: fixed; inset: 0; z-index: 1000; display: grid !important; grid-template-rows: minmax(0, 1fr) auto; width: 100%; max-width: 100vw; min-height: 100vh; min-height: 100svh; padding: calc(36px + env(safe-area-inset-top)) calc(7% + env(safe-area-inset-right)) calc(32px + env(safe-area-inset-bottom)) calc(7% + env(safe-area-inset-left)); overflow: hidden; color: var(--cream); background: radial-gradient(circle at 50% 42%, #4b41312e 0, #26262500 34%), linear-gradient(135deg, #1d1d1c, var(--ink) 62%, #1e1e1d); clip-path: inset(0 0 0 0); isolation: isolate; } .home-loader::before, .home-loader::after { content: ''; position: absolute; pointer-events: none; } .home-loader::before { inset: 0 50%; width: 1px; background: linear-gradient(180deg, transparent, #b38c4a52 22%, #b38c4a52 78%, transparent); transform: scaleY(0); transform-origin: center; animation: loader-thread 1s .16s cubic-bezier(.22,.61,.36,1) forwards; } .home-loader::after { z-index: 3; left: 0; right: 0; bottom: 0; height: 1px; background: linear-gradient(90deg, transparent, var(--gold), transparent); opacity: 0; } .home-loader-signature { position: relative; z-index: 1; align-self: center; justify-self: center; display: flex; flex-direction: column; align-items: center; gap: 22px; width: min(280px, 70vw); padding-top: 4vh; } .home-loader-mark-lockup, .home-loader-logo-lockup { position: relative; display: block; } .home-loader-mark-lockup { width: clamp(46px, 5.5vw, 72px); aspect-ratio: 217 / 448; } .home-loader-logo-lockup { width: clamp(178px, 20vw, 260px); aspect-ratio: 1412 / 916; } .home-loader-mark, .home-loader-logo { position: absolute; inset: 0; width: 100%; display: block; height: auto; object-fit: contain; } .home-loader-mark { max-height: 25svh; opacity: 0; transform: translateY(18px) scaleY(.94); animation: loader-mark-arrive .8s .12s cubic-bezier(.16,1,.3,1) forwards; } .home-loader-mark-light { filter: brightness(0) saturate(100%) invert(60%) sepia(18%) saturate(420%) hue-rotate(352deg) brightness(88%); } .home-loader-mark-original { mix-blend-mode: screen; } .home-loader-logo { opacity: 0; transform: translateY(10px); animation: loader-wordmark-arrive .72s .34s cubic-bezier(.16,1,.3,1) forwards; } .home-loader-logo-original { opacity: 0; } .home-loader-copy { position: relative; z-index: 1; width: min(460px, 100%); margin: 0 auto; text-align: center; opacity: 0; transform: translateY(8px); animation: loader-copy-arrive .6s .48s ease-out forwards; } .home-loader-kicker { color: #d3b681; font-size: 8px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; } .home-loader-title { margin-top: 8px; color: var(--cream); font-family: var(--serif); font-size: clamp(24px, 3vw, 34px); line-height: 1.15; letter-spacing: -.025em; } .home-loader-title em { color: #ead1ab; } .home-loader-track { position: relative; width: min(330px, 82vw); height: 1px; margin: 22px auto 12px; overflow: visible; background: #fff9f129; } .home-loader-track span { display: block; width: 100%; height: 2px; background: linear-gradient(90deg, #8f6a32, #e2c38f); box-shadow: 0 0 10px #b38c4a66; transform: scaleX(var(--loader-progress)); transform-origin: left center; transition: transform .18s linear; } .home-loader-track.is-indeterminate span { width: 36%; animation: loader-indeterminate 1.25s ease-in-out infinite; } .home-loader-status { min-height: 19px; color: #fff9f1a8; font-size: 9px; letter-spacing: .08em; } html[data-seve-loader="releasing"] .home-loader { pointer-events: none; clip-path: inset(0 0 100% 0); transition: clip-path .98s cubic-bezier(.76,0,.24,1); } html[data-seve-loader="releasing"] .home-loader::after { opacity: 1; transition: opacity .12s ease; } html[data-seve-loader="releasing"] .home-loader-signature, html[data-seve-loader="releasing"] .home-loader-copy { opacity: 0; transform: translateY(-12px); transition: opacity .24s ease, transform .34s ease; } /* The hero rises into the opening left by the loader curtain, without hiding the no-JS baseline. */ html[data-seve-loader] .home-page .site-header, html[data-seve-loader] .intro-copy, html[data-seve-loader] .intro-scroll-cue, html[data-seve-loader] .intro-signature { transition: opacity .66s cubic-bezier(.22,.61,.36,1), transform .72s cubic-bezier(.16,1,.3,1); } html[data-seve-loader] .intro-media { transition: transform .98s cubic-bezier(.16,1,.3,1); transform-origin: center; } html[data-seve-loader="loading"] .home-page .site-header { opacity: 0; transform: translateY(-10px); } html[data-seve-loader="loading"] .intro-copy { opacity: 0; transform: translateY(18px); } html[data-seve-loader="loading"] .intro-scroll-cue, html[data-seve-loader="loading"] .intro-signature { opacity: 0; transform: translateY(10px); } html[data-seve-loader="loading"] .intro-media { transform: scale(1.018); } html[data-seve-loader="releasing"] .home-page .site-header { transition-delay: .08s; } html[data-seve-loader="releasing"] .intro-copy { transition-delay: .14s; } html[data-seve-loader="releasing"] .intro-scroll-cue, html[data-seve-loader="releasing"] .intro-signature { transition-delay: .22s; } @keyframes loader-thread { to { transform: scaleY(1); } } @keyframes loader-mark-arrive { to { opacity: 1; transform: translateY(0) scaleY(1); } } @keyframes loader-wordmark-arrive { to { opacity: 1; transform: translateY(0); } } @keyframes loader-copy-arrive { to { opacity: 1; transform: translateY(0); } } @keyframes loader-indeterminate { 0% { transform: translateX(-120%); } 55%, 100% { transform: translateX(300%); } } /* The opening owns a whole viewport, including the overlaid header and signature. */ .home-page .site-header { position: absolute; inset: 0 0 auto; z-index: 10; color: var(--cream); border-color: #fff9f133; } .home-page .site-header .brand img { content: url('/images/brand/logo-light.png'); } .home-page .site-header nav a:hover { color: #e7cfa9; } .home-page .site-header a:focus-visible { outline-color: var(--cream); } .home-page .site-header .header-cta { border-color: #d3b681; } .intro-scene { --intro-progress: 0; position: relative; background: var(--cream); } .intro-stage { min-height: 100vh; min-height: 100svh; display: grid; grid-template-rows: minmax(0, 1fr) 70px; color: var(--cream); } .intro-scene.intro-scroll-enabled { height: 210svh; } .intro-scroll-enabled .intro-stage { position: sticky; top: 0; height: 100svh; } .intro-canvas { position: relative; display: flex; align-items: center; min-width: 0; overflow: hidden; background: var(--ink); } .intro-media { position: absolute; inset: 0; overflow: hidden; } .intro-poster, .intro-poster img, .intro-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; } .intro-poster img { object-position: 65% center; } .intro-video { opacity: 0; transition: opacity .4s ease; } .intro-scene[data-animation-state="ready"] .intro-video { opacity: 1; } .intro-media::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, #171918ce 0%, #17191885 35%, #1719181a 74%), linear-gradient(180deg, #17191866, transparent 35%, #17191833); } .intro-copy { position: relative; width: 100%; max-width: 1600px; margin: 0 auto; padding: 124px 7% 40px; } .intro-copy .eyebrow { color: #ecd9b8; margin-bottom: 22px; font-size: 10px; } .intro-copy h1 { font-size: clamp(58px, min(6.7vw, 9svh), 108px); line-height: .98; letter-spacing: -.045em; } .intro-copy h1 em { color: #ead1ab; } .intro-copy p { color: #fff9f1e6; font-size: 12px; line-height: 1.9; margin: 22px 0 27px; } .intro-cta { color: var(--ink); background: var(--cream); border-color: var(--cream); min-height: 48px; } .intro-cta:hover { background: #ecd9b8; border-color: #ecd9b8; } .intro-discover { display: flex; align-items: center; width: max-content; gap: 28px; min-height: 44px; margin-top: 8px; font-size: 10px; } .intro-discover .icon { width: 18px; height: 18px; color: #ead1ab; } .intro-copy a:focus-visible, .intro-scroll-cue:focus-visible { outline-color: var(--cream); } .intro-scroll-cue { position: absolute; bottom: 22px; right: 5%; display: flex; gap: 28px; align-items: center; min-height: 44px; font-size: 10px; letter-spacing: .08em; } .intro-scroll-cue .icon { width: 21px; height: 21px; } .intro-signature { position: relative; display: grid; grid-template-columns: 1fr auto 1fr auto 1fr auto 1.6fr; align-items: center; gap: 20px; padding: 0 7%; color: var(--ink); background: var(--cream); border-bottom: 1px solid var(--line); font-size: 10px; text-transform: uppercase; letter-spacing: .19em; text-align: center; } .intro-signature i { width: 3px; height: 3px; background: var(--gold); transform: rotate(45deg); } .intro-progress { position: absolute; top: 0; left: 0; right: 0; height: 1px; background: var(--line); } .intro-progress span { display: block; height: 4px; background: #d69b35; box-shadow: 0 0 10px #d69b3573; transform: scaleX(var(--intro-progress)); transform-origin: left center; } @media (min-width: 761px) and (max-height: 750px) { .intro-copy { padding-top: 122px; padding-bottom: 30px; } .intro-copy h1 { font-size: clamp(56px, 9svh, 78px); } .intro-copy .eyebrow { margin-bottom: 14px; } .intro-copy p { margin: 16px 0 20px; } .intro-stage { grid-template-rows: minmax(0, 1fr) 60px; } } @media (max-width: 760px) { .home-loader-signature { gap: 20px; padding-top: 2vh; } .home-loader-mark-lockup { width: clamp(44px, 13vw, 58px); } .home-loader-logo-lockup { width: min(210px, 58vw); } .home-loader-mark { max-height: 23svh; } .home-loader-copy { padding-bottom: 2px; } .home-loader-title { font-size: clamp(23px, 7vw, 30px); } .intro-stage { grid-template-rows: minmax(0, 1fr) 76px; } .intro-copy { padding: 112px 7% 75px; } .intro-copy .eyebrow { font-size: 8px; margin-bottom: 20px; } .intro-copy h1 { font-size: clamp(40px, min(13.5vw, 8.5svh), 65px); } .intro-copy p { font-size: 11px; margin: 24px 0; } .intro-media::after { background: linear-gradient(90deg, #171918b8, #17191824), linear-gradient(180deg, #17191880, #17191826 24%, #17191888 82%); } .intro-poster img { object-position: center; } .intro-cta { font-size: 10px; padding: 13px 20px; gap: 24px; } .intro-discover { font-size: 9px; } .intro-scroll-cue { left: 7%; right: 7%; bottom: 13px; justify-content: space-between; font-size: 9px; } .intro-signature { grid-template-columns: 1fr 1fr; gap: 0 12px; padding: 10px 6%; font-size: 8px; letter-spacing: .13em; } .intro-signature i { display: none; } } @media (max-width: 760px) and (max-height: 740px) { .intro-copy { padding-top: 98px; padding-bottom: 55px; } .intro-copy h1 { font-size: clamp(38px, min(13.5vw, 8.7svh), 60px); } .intro-copy .eyebrow { margin-bottom: 12px; } .intro-copy p { margin: 16px 0 18px; } .intro-discover { margin-top: 2px; } .intro-scroll-cue { bottom: 3px; } } /* Short/zoomed windows reflow normally, instead of clipping the calls to action. */ .intro-scene.intro-reflow .intro-stage { height: auto; min-height: 100svh; position: static; } .intro-scene.intro-reflow { height: auto; } .intro-reflow .intro-canvas { min-height: 590px; } @media (prefers-reduced-motion: reduce) { .home-loader::before, .home-loader-mark, .home-loader-logo, .home-loader-copy, .home-loader-track.is-indeterminate span { animation: none; } .home-loader::before { transform: scaleY(1); } .home-loader-mark, .home-loader-logo, .home-loader-copy { opacity: 1; transform: none; } .home-loader-track span { transition: none; } html[data-seve-loader="releasing"] .home-loader { opacity: 0; clip-path: none; transition: opacity .1s linear; } html[data-seve-loader] .home-page .site-header, html[data-seve-loader] .intro-copy, html[data-seve-loader] .intro-scroll-cue, html[data-seve-loader] .intro-signature { transition: opacity .1s linear; transform: none; } html[data-seve-loader] .intro-media { transition: none; transform: none; } html[data-seve-loader="loading"] .home-page .site-header, html[data-seve-loader="loading"] .intro-copy, html[data-seve-loader="loading"] .intro-scroll-cue, html[data-seve-loader="loading"] .intro-signature { opacity: 0; transform: none; } .intro-scene.intro-scroll-enabled { height: auto; } .intro-scroll-enabled .intro-stage { position: static; } .intro-video { display: none; transition: none; } } /* The room atlas reuses Sève's type, palette and focus contract. */ .seve-space { max-width:1600px; margin:0 auto; padding:112px 5% 88px; } .seve-space__intro { display:grid; grid-template-columns:1.15fr 1fr; gap:12%; align-items:end; margin-bottom:64px; } .seve-space__intro .eyebrow { margin-bottom:22px; } .seve-space__eyebrow { display:flex; align-items:center; gap:6px; } .seve-space__eyebrow-tail { display:inline-flex; align-items:center; gap:2px; } .seve-space__eyebrow .icon { width:13px; height:13px; stroke-width:1.35; } .seve-space__intro h2 { font-size:clamp(44px,5.2vw,76px); } .seve-space__welcome { max-width:365px; padding-bottom:7px; } .seve-space__welcome p { font-size:13px; line-height:1.95; } .seve-space__signature { display:block; margin-top:22px; font-size:9px; letter-spacing:.12em; text-transform:uppercase; color:var(--gold-dark); } .seve-space__atlas { display:grid; grid-template-columns:minmax(180px,21%) minmax(0,1fr); gap:5%; } .seve-space__index { align-self:start; padding-top:6px; } .seve-space__index-label { display:block; margin-bottom:19px; font-size:9px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); } .seve-space__tabs { border-top:1px solid var(--line); } .seve-space__tab { display:grid; grid-template-columns:23px 1fr 16px; align-items:center; gap:8px; min-height:54px; border-bottom:1px solid var(--line); font-size:11px; transition:color .2s,background .2s; } .seve-space__number { font-size:9px; color:var(--gold-dark); } .seve-space__tab-arrow { width:17px; height:17px; opacity:0; transform:translate(-3px,3px); transition:opacity .2s,transform .2s; } .seve-space__tab:hover,.seve-space__tab[aria-selected="true"] { color:var(--gold-dark); } .seve-space__tab[aria-selected="true"] { font-weight:600; border-bottom-color:var(--gold); } .seve-space__tab:hover .seve-space__tab-arrow,.seve-space__tab:focus-visible .seve-space__tab-arrow,.seve-space__tab[aria-selected="true"] .seve-space__tab-arrow { opacity:1; transform:translate(0,0); } .seve-space__tab[aria-selected="true"] .seve-space__tab-arrow { transform:rotate(45deg); } .seve-space__index-note { margin-top:28px; font-family:var(--serif); font-size:23px; line-height:1.3; color:var(--gold-dark); } .seve-space__chapter { scroll-margin-top:100px; } .seve-space__chapter + .seve-space__chapter { margin-top:68px; } .seve-space[data-space-enhanced] .seve-space__chapter + .seve-space__chapter { margin-top:0; } .seve-space__photos { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(0,1fr); gap:26px; align-items:start; } .seve-space figure { margin:0; } .seve-space__main-photo { position:relative; } .seve-space__main-photo img { width:100%; aspect-ratio:2/3; object-fit:cover; background:var(--soft); } .seve-space__main-photo figcaption { display:flex; justify-content:space-between; gap:14px; margin-top:12px; font-size:8px; text-transform:uppercase; letter-spacing:.1em; color:var(--muted); } .seve-space__aside { display:flex; flex-direction:column; padding-top:30px; } .seve-space__room-note { max-width:220px; min-height:126px; margin-bottom:29px; font-size:11px; line-height:1.9; } .seve-space__detail-photo img { width:100%; aspect-ratio:2/3; object-fit:cover; background:var(--soft); } .seve-space__detail-photo--landscape img { aspect-ratio:4/3; } .seve-space__detail-photo figcaption { margin-top:13px; font-family:var(--serif); font-size:20px; line-height:1.3; color:var(--gold-dark); } .seve-space__photo-controls { display:none; } .seve-space[data-space-enhanced] .seve-space__photo-controls { position:absolute; top:12px; right:12px; z-index:2; display:flex; align-items:center; gap:2px; min-height:52px; padding:4px; color:var(--ink); background:#fff9f1e8; border:1px solid #fff9f180; backdrop-filter:blur(9px); } .seve-space__photo-controls button { display:grid; place-items:center; width:44px; height:44px; padding:0; border:0; background:transparent; color:inherit; } .seve-space__photo-controls button:hover { color:var(--gold-dark); background:#b38c4a1a; } .seve-space__photo-controls button:focus-visible { outline-offset:1px; } .seve-space__photo-controls .icon { width:15px; height:15px; } .seve-space__play-icon { display:none; } .seve-space__photo-controls [data-space-photo="toggle"][aria-pressed="true"] .seve-space__pause-icon { display:none; } .seve-space__photo-controls [data-space-photo="toggle"][aria-pressed="true"] .seve-space__play-icon { display:block; } .seve-space__room-heading { display:grid; grid-template-columns:1.2fr 1fr; gap:22px; align-items:center; margin-top:29px; padding-top:22px; border-top:1px solid var(--line); } .seve-space__room-heading h3 { font-family:var(--serif); font-size:clamp(29px,3.2vw,45px); letter-spacing:-.04em; line-height:1.15; font-weight:400; } .seve-space__room-heading p { max-width:260px; font-size:11px; line-height:1.7; } .seve-space__footer { display:flex; align-items:center; justify-content:space-between; gap:30px; margin-top:55px; padding-top:25px; border-top:1px solid var(--line); } .seve-space__footer p { display:flex; align-items:center; gap:14px; font-size:10px; } .seve-space__footer .icon { width:18px; } .seve-space__footer .text-link { font-size:11px; gap:28px; } .seve-space[data-space-enhanced] .seve-space__chapter:not([hidden]) { animation:seve-room-reveal .32s ease-out; } @keyframes seve-room-reveal { from { opacity:.5; transform:translateY(7px); } to { opacity:1; transform:translateY(0); } } @media (max-width:1050px) { .seve-space__atlas { gap:4%; grid-template-columns:minmax(170px,23%) minmax(0,1fr); } .seve-space__photos { gap:18px; } .seve-space__aside { padding-top:14px; } .seve-space__room-note { min-height:105px; margin-bottom:18px; font-size:10px; } .seve-space__detail-photo figcaption { font-size:18px; } } @media (max-width:900px) { .seve-space { padding:78px 5% 64px; } .seve-space__intro { gap:7%; margin-bottom:37px; } .seve-space__welcome p { font-size:12px; } .seve-space__atlas { display:block; } .seve-space__index { padding-top:0; margin-bottom:32px; } .seve-space__index-label { margin-bottom:12px; } .seve-space__tabs { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); column-gap:18px; } .seve-space__tab { min-height:48px; font-size:10px; grid-template-columns:18px 1fr 12px; gap:5px; } .seve-space__tab-arrow { width:15px; height:15px; } .seve-space__index-note { display:none; } .seve-space__photos { gap:26px; } .seve-space__aside { padding-top:40px; } .seve-space__room-note { min-height:125px; font-size:12px; margin-bottom:24px; } .seve-space__detail-photo figcaption { font-size:23px; } .seve-space__room-heading h3 { font-size:39px; } } @media (max-width:620px) { .seve-space { padding:62px 5% 50px; } .seve-space__intro { display:block; margin-bottom:30px; } .seve-space__intro .eyebrow { margin-bottom:18px; } .seve-space__intro h2 { font-size:clamp(41px,10.5vw,61px); } .seve-space__welcome { margin-top:24px; max-width:350px; padding:0; } .seve-space__welcome p { font-size:11px; line-height:1.9; } .seve-space__signature { margin-top:16px; font-size:8px; } .seve-space__tabs { grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:22px; } .seve-space__tab { min-height:46px; font-size:10px; } .seve-space__index { margin-bottom:27px; } .seve-space__photos { display:block; position:relative; } .seve-space__main-photo { width:86%; } .seve-space__main-photo figcaption { font-size:7px; margin-top:10px; padding-right:8px; } .seve-space__main-photo figcaption span:last-child { display:none; } .seve-space[data-space-enhanced] .seve-space__photo-controls { top:9px; right:9px; gap:0; min-height:52px; } .seve-space__photo-controls button { width:44px; height:44px; } .seve-space__aside { position:relative; width:48%; margin:-38% 0 0 auto; padding:0 0 0 10px; background:var(--cream); } .seve-space__room-note { display:none; } .seve-space__detail-photo img { border-top:10px solid var(--cream); } .seve-space__detail-photo figcaption { font-size:20px; padding-left:3px; margin-top:10px; } .seve-space__room-heading { display:block; margin-top:24px; padding-top:21px; } .seve-space__room-heading h3 { font-size:36px; } .seve-space__room-heading p { margin-top:9px; font-size:11px; max-width:none; } .seve-space__footer { display:block; margin-top:36px; padding-top:22px; } .seve-space__footer p { font-size:9px; } .seve-space__footer .text-link { margin-top:18px; font-size:10px; gap:20px; } } @media (prefers-reduced-motion:reduce) { .seve-space[data-space-enhanced] .seve-space__chapter:not([hidden]) { animation:none; } .seve-space__tab,.seve-space__tab-arrow { transition:none; } } /* Connection rows: a drawn rule and a shared hover/focus state. */ .links-section .useful-link { --link-rule:0; --link-shift:0px; --link-icon-surface:transparent; --link-icon-ink:var(--gold-dark); position:relative; isolation:isolate; } .links-section .useful-link::after { content:""; position:absolute; pointer-events:none; } .links-section .useful-link::after { inset:auto 0 -1px; height:1px; background:var(--gold-dark); transform:scaleX(var(--link-rule)); transform-origin:left center; transition:transform .4s cubic-bezier(.2,.65,.3,1); } .links-section .link-icon { background:var(--link-icon-surface); color:var(--link-icon-ink); transition:background-color .25s ease,color .25s ease,border-color .25s ease; } .links-section .link-label { transform:translateX(var(--link-shift)); transition:transform .3s ease; } .links-section .useful-link .link-arrow { transform:translate(var(--link-shift),calc(-1 * var(--link-shift))); transition:transform .3s ease; } .links-section .useful-link:focus-visible { --link-rule:1; --link-shift:3px; --link-icon-surface:var(--gold-dark); --link-icon-ink:var(--cream); } @media (hover:hover) and (pointer:fine) { .links-section .useful-link:hover { --link-rule:1; --link-shift:3px; --link-icon-surface:var(--gold-dark); --link-icon-ink:var(--cream); } } @media (prefers-reduced-motion:reduce) { .links-section .link-label, .links-section .useful-link .link-arrow { transform:none; } }
