@font-face{font-family: "Cormorant Garamond";src: url("../fonts/cormorant-garamond-500.woff2") format("woff2");font-weight: 500;font-style: normal;font-display: swap;} @font-face{font-family: "Outfit";src: url("../fonts/outfit-400.woff2") format("woff2");font-weight: 400;font-style: normal;font-display: swap;} @font-face{font-family: "Outfit";src: url("../fonts/outfit-500.woff2") format("woff2");font-weight: 500;font-style: normal;font-display: swap;} :root{--ivory: #f3eee6;--paper: #fbf8f4;--sand: #e6dcd1;--sand-deep: #d9cdc0;--rose: #c9aea6;--rose-deep: #704c48;--ink: #1c1916;--ink-soft: #3a332d;--muted: #4a433c;--line: rgba(28, 25, 22, 0.16);--danger: #8d2e2a;--ok: #1d4a38;--serif: "Cormorant Garamond", "Iowan Old Style", "Palatino Linotype", Palatino, serif;--sans: "Outfit", "Avenir Next", "Segoe UI", sans-serif;--header: 4.75rem;--wrap: 76rem;color-scheme: light;} *, *::before, *::after{box-sizing: border-box;} html{scroll-behavior: smooth;} body{margin: 0;background: var(--ivory);color: var(--ink);font-family: var(--sans);font-size: 1.0625rem;font-weight: 400;line-height: 1.7;text-rendering: optimizeLegibility;} img{max-width: 100%;height: auto;display: block;} a{color: inherit;} button, input, select, textarea{font: inherit;color: inherit;} h1, h2, h3, p{overflow-wrap: break-word;} h1, h2, h3{font-family: var(--serif);font-weight: 500;letter-spacing: -0.03em;line-height: 0.98;margin: 0;} h1{font-size: clamp(2.5rem, 6.6vw, 6.15rem);} h2{font-size: clamp(2rem, 4vw, 3.5rem);} h3{font-size: clamp(1.45rem, 2vw, 2rem);line-height: 1.1;} p{margin: 0 0 1rem;} ul, ol{margin: 0 0 1rem;padding-left: 1.15rem;} .skip{position: absolute;left: 1rem;top: -4rem;z-index: 80;background: var(--ink);color: var(--ivory);padding: 0.75rem 1rem;text-decoration: none;} .skip:focus{top: 1rem;} .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;} .wrap{width: min(var(--wrap), calc(100% - 2rem));margin-inline: auto;} .wrap-narrow{width: min(46rem, calc(100% - 2rem));margin-inline: auto;} .kicker{margin: 0 0 0.9rem;color: var(--muted);font-size: 0.74rem;font-weight: 500;letter-spacing: 0.18em;text-transform: uppercase;} .lead{font-size: clamp(1.08rem, 1.5vw, 1.28rem);line-height: 1.6;max-width: 38rem;color: var(--ink-soft);} .prose{max-width: 42rem;} .prose a, .link-quiet{text-underline-offset: 0.18em;} .prose a:hover, .link-quiet:hover{color: var(--rose-deep);} .site-header{position: sticky;top: 0;z-index: 40;height: var(--header);background: rgba(243, 238, 230, 0.96);border-bottom: 1px solid var(--line);} .bar{height: 100%;display: flex;align-items: center;justify-content: space-between;gap: 1rem;} .logo{position: relative;z-index: 50;font-family: var(--serif);font-size: 1.85rem;letter-spacing: 0.12em;text-transform: uppercase;text-decoration: none;line-height: 1;} .header-phone{margin-left: auto;color: var(--ink);font-size: 0.92rem;letter-spacing: 0.04em;text-decoration: none;white-space: nowrap;} .nav-phone{display: none;} .nav-toggle{position: absolute;width: 1px;height: 1px;margin: -1px;overflow: hidden;clip: rect(0, 0, 0, 0);} .nav-toggle-btn, .nav-close{display: none;} .nav-list, .sub{list-style: none;margin: 0;padding: 0;} .nav-list{display: flex;align-items: center;gap: 1.15rem;} .nav-list > li > a{text-decoration: none;font-size: 0.92rem;letter-spacing: 0.02em;} .has-sub{position: relative;} .sub{display: none;position: absolute;top: calc(100% + 0.85rem);left: 0;min-width: 16.5rem;padding: 0.7rem 0;background: var(--paper);border: 1px solid var(--line);} .sub a{display: block;padding: 0.45rem 1rem;text-decoration: none;font-size: 0.95rem;} .sub a:hover, .nav-list a:hover, .footer a:hover{color: var(--rose-deep);} @media (min-width: 1100px){.sub::before{content: "";position: absolute;left: 0;right: 0;top: -0.9rem;height: 0.9rem;}} .has-sub:hover > .sub, .has-sub:focus-within > .sub{display: block;} [aria-current="page"]{text-decoration: underline;text-underline-offset: 0.28em;} .btn, button.btn{display: inline-flex;align-items: center;justify-content: center;min-height: 3rem;padding: 0.7rem 1.25rem;border: 1px solid var(--ink);background: var(--ink);color: var(--ivory);text-decoration: none;letter-spacing: 0.12em;text-transform: uppercase;font-size: 0.72rem;font-weight: 500;cursor: pointer;transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;} .btn:hover, button.btn:hover{background: var(--rose-deep);border-color: var(--rose-deep);color: #fff;} .btn-ghost{background: transparent;color: var(--ink);} .btn-ghost:hover{background: var(--ink);color: var(--ivory);} .btn-small{min-height: 2.75rem;padding-inline: 0.95rem;} .hero-actions, .cta-actions{display: flex;flex-wrap: wrap;gap: 0.75rem;margin-top: 1.5rem;} .hero{padding: clamp(1.5rem, 4vw, 4rem) 0 clamp(2.5rem, 6vw, 5rem);} .hero-photo{position: relative;isolation: isolate;display: flex;align-items: flex-end;min-height: min(88vh, 52rem);padding: 0;overflow: hidden;color: var(--ivory);} .hero-photo .hero-bg{position: absolute;inset: 0;z-index: 0;width: 100%;height: 100%;max-width: none;object-fit: cover;object-position: center 20%;} .hero-photo::before{content: "";position: absolute;inset: 0;z-index: 1;background: linear-gradient(180deg, rgba(28, 25, 22, 0.18) 0%, rgba(28, 25, 22, 0.05) 42%, rgba(28, 25, 22, 0.78) 100%);} .hero-photo .hero-copy{position: relative;z-index: 2;padding-top: clamp(6rem, 18vh, 10rem);padding-bottom: clamp(2rem, 5vw, 3.5rem);} .hero-photo .kicker, .hero-photo .lead{color: rgba(243, 238, 230, 0.9);} .hero-photo .lead{max-width: 36rem;} .hero-photo .btn{background: var(--ivory);color: var(--ink);border-color: var(--ivory);} .hero-photo .btn:hover{background: var(--rose-deep);color: #fff;border-color: var(--rose-deep);} .hero-photo .btn-ghost{background: transparent;color: var(--ivory);border-color: rgba(243, 238, 230, 0.75);} .hero-photo .btn-ghost:hover{background: var(--ivory);color: var(--ink);border-color: var(--ivory);} .hero-home, .hero-split, .hero-bridal, .hero-side{display: grid;grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);gap: clamp(1.5rem, 4vw, 4.5rem);align-items: center;} .hero-stack{display: grid;gap: 1.5rem;} .hero-stack .frame{aspect-ratio: 16 / 7;max-height: 28rem;} .hero-overlap{display: grid;grid-template-columns: minmax(0, 1.15fr) minmax(18rem, 0.7fr);gap: 0;align-items: stretch;} .hero-overlap .hero-copy{background: var(--paper);padding: clamp(1.5rem, 3vw, 3rem);align-self: center;margin-right: -8%;position: relative;z-index: 1;border: 1px solid var(--line);} .frame{background: var(--sand);overflow: hidden;} .frame img{width: 100%;height: 100%;object-fit: cover;} .portrait{aspect-ratio: 4 / 5;max-height: min(72vh, 40rem);} .landscape{aspect-ratio: 3 / 2;} .wide{aspect-ratio: 16 / 9;} .section{padding: clamp(3.5rem, 8vw, 7rem) 0;} .band-sand{background: var(--sand);} .band-paper{background: var(--paper);} .split, .split-30, .mosaic, .trio, .lesson-grid, .contact-grid, .footer-grid, .two, .card-grid{display: grid;gap: clamp(1.25rem, 3vw, 3rem);} .split{grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);align-items: center;} .split-30{grid-template-columns: minmax(0, 0.7fr) minmax(0, 1.3fr);align-items: start;} .two{grid-template-columns: repeat(2, minmax(0, 1fr));} .trio, .card-grid{grid-template-columns: repeat(3, minmax(0, 1fr));} .mosaic{grid-template-columns: 1.1fr 0.9fr 1fr;align-items: end;} .mosaic .frame:nth-child(2){margin-bottom: 12%;} .service-row{display: grid;grid-template-columns: 9rem minmax(0, 1fr) auto;gap: 1.25rem 1.5rem;align-items: center;padding: 1.4rem 0;border-top: 1px solid var(--line);} .service-row h3 a{text-decoration: none;} a.service-row:hover h3{color: var(--rose-deep);} .service-row .num{font-family: var(--serif);font-size: 2rem;color: var(--muted);} .service-row p{margin: 0;color: var(--ink-soft);} .rule{border: 0;border-top: 1px solid var(--line);margin: 0;} .pull{margin: 0;font-family: var(--serif);font-size: clamp(1.8rem, 3vw, 2.7rem);line-height: 1.12;letter-spacing: -0.03em;} .status-note, .note{border-top: 1px solid var(--line);border-bottom: 1px solid var(--line);padding: 0.9rem 0;color: var(--ink-soft);font-size: 0.98rem;} .steps{display: grid;grid-template-columns: repeat(3, minmax(0, 1fr));gap: 1.5rem;counter-reset: step;} .step{border-top: 1px solid var(--ink);padding-top: 1rem;} .step::before{counter-increment: step;content: counter(step, decimal-leading-zero);display: block;margin-bottom: 0.8rem;font-family: var(--serif);font-size: 1.6rem;} .faq-item{border-top: 1px solid var(--line);} .faq-item summary{min-height: 3.5rem;display: flex;align-items: center;justify-content: space-between;gap: 1rem;padding: 0.85rem 0;cursor: pointer;font-family: var(--serif);font-size: clamp(1.3rem, 2vw, 1.7rem);line-height: 1.15;letter-spacing: -0.02em;list-style: none;} .faq-item summary::-webkit-details-marker{display: none;} .faq-item summary::after{content: "+";font-family: var(--sans);font-size: 1.3rem;flex: 0 0 auto;} .faq-item[open] summary::after{content: "–";} .faq-body{max-width: 42rem;padding-bottom: 1.1rem;color: var(--ink-soft);} .related-grid, .lesson-grid{grid-template-columns: repeat(3, minmax(0, 1fr));} .related-card, .info-card{display: flex;flex-direction: column;justify-content: space-between;gap: 1rem;min-height: 100%;padding: 1.25rem 0 0;border-top: 1px solid var(--ink);text-decoration: none;} .related-card span, .arrow{letter-spacing: 0.12em;text-transform: uppercase;font-size: 0.72rem;font-weight: 500;} .cta-band{display: grid;grid-template-columns: minmax(0, 1.4fr) auto;gap: 1.5rem;align-items: end;padding: clamp(2rem, 5vw, 3.5rem) 0;} .crumbs{display: flex;flex-wrap: wrap;gap: 0.4rem 0.35rem;margin: 0;padding: 1rem 0 0;color: var(--muted);font-size: 0.85rem;list-style: none;} .crumbs a{text-decoration: none;} .crumbs a:hover{text-decoration: underline;} .crumbs li:not(:last-child)::after{content: "/";margin-left: 0.35rem;color: var(--sand-deep);} .contact-grid{grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);align-items: start;} .form{display: grid;gap: 1rem;} .field{display: grid;gap: 0.35rem;} .field label, .check span{font-size: 0.78rem;letter-spacing: 0.08em;text-transform: uppercase;} .field input, .field select, .field textarea{width: 100%;min-height: 3rem;padding: 0.75rem 0.8rem;border: 1px solid var(--line);background: var(--paper);border-radius: 0;} .field textarea{min-height: 9rem;resize: vertical;} .field input:focus-visible, .field select:focus-visible, .field textarea:focus-visible, .btn:focus-visible, .nav-toggle:focus-visible + .nav-toggle-btn, summary:focus-visible, a:focus-visible{outline: 2px solid var(--ink);outline-offset: 3px;} .hero-photo a:focus-visible, .hero-photo .btn:focus-visible{outline-color: #fff;} .is-invalid{border-color: var(--danger) !important;} .field-error{min-height: 0;margin: 0;color: var(--danger);font-size: 0.92rem;} .field-error:empty{display: none;} .check{display: flex;gap: 0.75rem;align-items: flex-start;} .check input{width: 1.15rem;height: 1.15rem;margin-top: 0.2rem;accent-color: var(--ink);} .hp{position: absolute;left: -10000px;width: 1px;height: 1px;overflow: hidden;} .form-status{padding: 1rem 0;border-top: 1px solid var(--line);} .form-status ul{margin-bottom: 0;} .is-success{color: var(--ok);} .is-error{color: var(--danger);} .legal-toc{margin: 1.5rem 0 0.5rem;padding: 1rem 1.1rem;border: 1px solid var(--line);background: rgba(255, 252, 248, 0.55);} .legal-toc ol{margin: 0;padding-left: 1.2rem;} .legal-toc a{color: var(--ink);text-underline-offset: 0.15em;} .table-wrap{overflow-x: auto;margin: 1rem 0 1.4rem;} .data-table{width: 100%;border-collapse: collapse;font-size: 0.95rem;} .data-table th, .data-table td{padding: 0.7rem 0.6rem;border-bottom: 1px solid var(--line);text-align: left;vertical-align: top;} .data-table th{font-size: 0.74rem;letter-spacing: 0.08em;text-transform: uppercase;} .contact-card{padding: 1.4rem 1.3rem;border: 1px solid var(--line);background: rgba(255, 252, 248, 0.72);} .contact-card p{margin: 0 0 0.8rem;} .contact-name{font-family: var(--serif);font-size: 1.8rem;line-height: 1.1;} .legal h2{margin: 2.2rem 0 0.8rem;font-size: clamp(1.7rem, 3vw, 2.4rem);} .legal h3{margin: 1.4rem 0 0.5rem;} .legal p, .legal li{color: var(--ink-soft);} .site-footer{background: #ebe3d9;border-top: 1px solid var(--line);padding: clamp(2.5rem, 6vw, 4.5rem) 0 1.5rem;} .footer-grid{grid-template-columns: 1.4fr 1fr 0.8fr 0.8fr;} .footer-brand p, .site-footer a, .site-footer li{color: var(--ink-soft);font-size: 0.96rem;} .site-footer ul{list-style: none;margin: 0;padding: 0;} .site-footer a{text-decoration: none;} .footer-title{margin: 0 0 0.8rem;font-family: var(--sans);font-size: 0.74rem;letter-spacing: 0.16em;text-transform: uppercase;font-weight: 500;} .wordmark{margin: 0 0 0.8rem;font-family: var(--serif);font-size: clamp(2.4rem, 5vw, 4rem);letter-spacing: 0.08em;text-transform: uppercase;line-height: 0.9;} .footer-base{display: flex;flex-wrap: wrap;justify-content: space-between;gap: 0.6rem 1.5rem;margin-top: 2rem;padding-top: 1rem;border-top: 1px solid var(--line);color: var(--muted);font-size: 0.85rem;} .footer-base nav{display: flex;flex-wrap: wrap;gap: 0.75rem 1rem;} .error-page{min-height: calc(100vh - var(--header));display: grid;align-content: center;padding: 4rem 0;} .js .reveal.is-in{opacity: 1;transform: none;} @media (max-width: 1099px){.header-phone{display: none;} .nav-phone{display: block;} .nav-toggle-btn{display: inline-flex;align-items: center;justify-content: center;width: 3rem;height: 3rem;position: relative;z-index: 50;cursor: pointer;} .nav-toggle-btn span.lines, .nav-toggle-btn span.lines span{display: block;} .nav-toggle-btn .lines{width: 1.25rem;} .nav-toggle-btn .lines span{height: 1px;margin: 5px 0;background: var(--ink);transition: transform 0.2s ease;} .nav{position: fixed;inset: 0;z-index: 45;background: var(--ivory);padding: calc(var(--header) + 0.5rem) 1.25rem 2rem;overflow: auto;transform: translateX(100%);visibility: hidden;} .nav-toggle:checked ~ .nav{transform: none;visibility: visible;} .nav-close{display: inline-flex;align-items: center;min-height: 3rem;margin-bottom: 0.5rem;letter-spacing: 0.14em;text-transform: uppercase;font-size: 0.75rem;cursor: pointer;} .nav-list{flex-direction: column;align-items: flex-start;gap: 0.2rem;} .nav-list > li > a, .sub a{display: inline-flex;align-items: center;min-height: 2.75rem;} .sub{display: grid;position: static;min-width: 0;padding: 0 0 0.4rem 0.7rem;border: 0;background: transparent;} .has-sub:hover > .sub, .has-sub:focus-within > .sub{display: grid;} .nav .btn{margin-top: 0.8rem;}} @media (max-width: 900px){.legal-toc ol{columns: 1;} .hero-home, .hero-split, .hero-bridal, .hero-side, .hero-overlap, .split, .split-30, .two, .trio, .card-grid, .steps, .mosaic, .contact-grid, .footer-grid, .related-grid, .lesson-grid, .cta-band, .service-row{grid-template-columns: 1fr;} .hero-overlap .hero-copy{margin-right: 0;} .mosaic .frame:nth-child(2){margin-bottom: 0;} .service-row .frame{max-width: 16rem;} .hero-stack .frame{aspect-ratio: 4 / 3;}} @media (max-width: 640px){.wrap, .wrap-narrow{width: min(var(--wrap), calc(100% - 1.5rem));} .hero-actions, .cta-actions{align-items: stretch;} .hero-actions .btn, .cta-actions .btn, .form .btn{width: 100%;} .hero-photo{min-height: min(78vh, 40rem);}} @media (prefers-reduced-motion: reduce){html{scroll-behavior: auto;} *, *::before, *::after{animation: none !important;transition: none !important;} .js .reveal.is-pending, .js .reveal.is-in{opacity: 1;transform: none;}}