:root { --ink:#0a0f14; --surface:#10171e; --surface-raised:#18212a; --line:rgba(229,241,242,.13); --text:#f1f6f5; --muted:#a9b7ba; --accent:#47d6c4; --accent-strong:#72e7d7; --warm:#ffc368; --page:1180px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:76px; }
body { margin:0; background:var(--ink); color:var(--text); font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; line-height:1.55; }
button,input,textarea,select { font:inherit; }
button { cursor:pointer; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
.page-shell { width:min(calc(100% - 48px),var(--page)); margin:0 auto; }
.skip-link { position:fixed; left:14px; top:-50px; z-index:100; padding:9px 14px; background:var(--accent); color:#05211e; border-radius:0 0 8px 8px; font-weight:800; transition:top .2s; }.skip-link:focus { top:0; }
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.site-header { position:sticky; top:0; z-index:30; background:rgba(10,15,20,.86); backdrop-filter:blur(18px); border-bottom:1px solid rgba(255,255,255,.06); }.header-inner { min-height:74px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand { display:inline-flex; align-items:center; gap:11px; letter-spacing:.06em; }.brand strong { display:block; font-size:.87rem; line-height:1.1; letter-spacing:.13em; }.brand small { display:block; margin-top:3px; color:var(--accent); font-weight:700; font-size:.64rem; text-transform:uppercase; letter-spacing:.18em; }
.brand-mark { width:43px; height:31px; position:relative; display:inline-block; border-bottom:3px solid var(--accent); }.brand-mark::before { content:""; position:absolute; left:6px; top:8px; width:30px; height:13px; border:2px solid var(--text); border-bottom:0; border-radius:7px 12px 0 0; transform:skewX(-17deg); }.brand-mark::after { content:""; position:absolute; width:7px; height:7px; left:8px; bottom:-5px; background:var(--ink); border:2px solid var(--text); border-radius:50%; box-shadow:20px 0 0 var(--ink),20px 0 0 0 var(--ink),20px 0 0 2px var(--text); }.brand-mark i { position:absolute; width:8px; height:2px; left:17px; top:11px; background:var(--accent); transform:skewX(-17deg); }
.main-navigation { display:flex; align-items:center; gap:27px; font-size:.86rem; font-weight:700; color:#d8e1e2; }.main-navigation>a:not(.nav-cta):hover { color:var(--accent); }.nav-cta { padding:10px 15px; border:1px solid var(--accent); color:var(--accent); border-radius:4px; }.nav-cta:hover { background:var(--accent); color:#08211f; }.menu-toggle { display:none; background:none; border:0; padding:8px; }.menu-toggle span:not(.sr-only) { display:block; width:22px; height:2px; background:var(--text); margin:5px; }
.hero { min-height:680px; height:calc(100vh - 74px); max-height:820px; min-height:610px; position:relative; display:flex; align-items:center; overflow:hidden; }.hero-image,.hero-shade { position:absolute; inset:0; width:100%; height:100%; }.hero-image { object-fit:cover; object-position:center; filter:saturate(.75) contrast(1.1) brightness(.8); transform:scale(1.02); }.hero-shade { }.hero-content { position:relative; z-index:1; padding-top:33px; }.eyebrow { margin:0 0 18px; color:var(--accent); text-transform:uppercase; letter-spacing:.19em; font-size:.7rem; font-weight:800; }.hero h1 { max-width:770px; margin:0; font-family:Georgia,"Times New Roman",serif; font-size:clamp(3.5rem,7.6vw,7.4rem); font-weight:400; line-height:.92; letter-spacing:-.055em; }.hero-copy { max-width:540px; margin:30px 0; font-size:1.08rem; color:#d4ddde; }.hero-actions { display:flex; flex-wrap:wrap; gap:13px; }.button { min-height:48px; display:inline-flex; align-items:center; justify-content:center; gap:26px; padding:12px 18px; border:1px solid transparent; font-weight:800; font-size:.85rem; letter-spacing:.02em; border-radius:3px; transition:transform .2s,background .2s,color .2s; }.button:hover { transform:translateY(-2px); }.button-primary { background:var(--accent); color:#062522; }.button-primary:hover { background:var(--accent-strong); }.button-quiet { border-color:rgba(255,255,255,.4); color:#fff; }.button-quiet:hover { border-color:#fff; background:rgba(255,255,255,.08); }.hero-facts { margin:56px 0 0; padding:0; display:flex; gap:0; list-style:none; color:#c5d1d2; font-size:.78rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }.hero-facts li { padding:0 18px; border-left:1px solid rgba(255,255,255,.42); }.hero-facts li:first-child { padding-left:0; border-left:0; }.scroll-hint { position:absolute; z-index:1; left:50%; bottom:23px; width:25px; height:43px; border:1px solid rgba(255,255,255,.55); border-radius:20px; transform:translateX(-50%); }.scroll-hint span { position:absolute; width:3px; height:9px; left:10px; top:8px; background:var(--accent); border-radius:5px; animation:scroll 1.7s infinite; }@keyframes scroll{0%,100%{transform:translateY(0);opacity:1}60%{transform:translateY(14px);opacity:0}}
.section { padding:118px 0; }.intro-section { background:#0d141a; border-bottom:1px solid var(--line); }.split-intro { display:grid; grid-template-columns:1fr minmax(310px,1.25fr) 230px; gap:54px; align-items:start; }.split-intro .eyebrow { padding-top:8px; }.intro-copy { color:#dae2e3; font-size:1.04rem; }.prose p:first-child { margin-top:0; }.prose p:last-child { margin-bottom:0; }.prose strong { color:var(--accent); }.contact-chip { border-left:1px solid var(--accent); padding:7px 0 7px 20px; }.contact-chip span,.contact-chip small { display:block; color:var(--muted); font-size:.75rem; }.contact-chip a { display:block; margin:7px 0 9px; color:var(--text); font-weight:800; font-size:1.02rem; }.contact-chip a:hover { color:var(--accent); }
.section-heading { max-width:685px; margin-bottom:48px; }.section-heading-wide { max-width:820px; }.section-heading h2,.request-aside h2 { margin:0 0 17px; font-size:clamp(2.3rem,4vw,4rem); font-family:Georgia,"Times New Roman",serif; font-weight:400; line-height:1.02; letter-spacing:-.04em; }.section-heading>p:last-child { margin:0; color:var(--muted); }.services-section { background:var(--ink); }.service-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }.service-card { min-height:445px; position:relative; overflow:hidden; border-right:1px solid var(--line); border-bottom:1px solid var(--line); background:#10181f; }.service-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.9; filter:saturate(.55); transition:opacity .35s,transform .6s; }.service-card::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(5,9,13,.98),rgba(5,9,13,.08) 80%); }.service-card:hover img { transform:scale(1.055); opacity:.61; }.service-card-content { position:relative; z-index:1; display:flex; height:100%; min-height:445px; padding:31px; flex-direction:column; align-items:flex-start; }.card-index,.package-number { font-weight:800; color:var(--accent); font-size:.72rem; letter-spacing:.17em; }.service-card h3 { margin:auto 0 9px; font-size:1.75rem; font-family:Georgia,serif; font-weight:400; }.service-card p { margin:0 0 18px; max-width:295px; color:#d2dcdd; font-size:.88rem; }.text-link { padding:0; border:0; background:none; color:var(--accent); font-weight:800; font-size:.81rem; text-align:left; }.text-link:hover { color:var(--accent-strong); }.text-link span { display:inline-block; margin-left:7px; transition:transform .2s; }.text-link:hover span { transform:translate(3px,-2px); }
.packages-section { background:#111920; }.package-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }.package-card { min-height:266px; display:flex; flex-direction:column; gap:11px; padding:27px 29px; background:#111920; }.package-card:hover { background:#162129; }.package-card h3 { margin:0; font-family:Georgia,serif; font-size:1.74rem; font-weight:400; }.package-type { margin:0 0 2px; color:var(--muted); font-size:.78rem; }.package-price { margin:auto 0 5px; font-size:1.4rem; color:var(--warm); font-family:Georgia,serif; }.package-featured { background:#12312f; }.package-featured:hover { background:#163e3a; }.package-extra { background:#0d141a; }.price-note { max-width:800px; margin:25px 0 0; color:var(--muted); font-size:.77rem; }
.gallery-section { background:#0d141a; }.gallery-grid { display:grid; min-height:610px; grid-template-columns:1.35fr 1fr 1fr; grid-template-rows:1fr 1fr; gap:10px; }.gallery-item { position:relative; min-height:230px; padding:0; overflow:hidden; border:0; background:#14202a; }.gallery-item:nth-child(1) { grid-row:span 2; }.gallery-item img { width:100%; height:100%; object-fit:cover; transition:transform .55s,filter .4s; }.gallery-item span { position:absolute; bottom:14px; left:17px; z-index:1; font-size:.71rem; font-weight:800; opacity:0; transform:translateY(8px); transition:.25s; }.gallery-item::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(0,0,0,.62),transparent 45%); opacity:0; transition:.25s; }.gallery-item:hover img { transform:scale(1.05); filter:brightness(.8); }.gallery-item:hover::after,.gallery-item:hover span { opacity:1; transform:translateY(0); }
.request-section { background:linear-gradient(120deg,#0e171e,#142927); }.request-layout { display:grid; grid-template-columns:.88fr 1.12fr; gap:90px; }.request-aside>p:not(.eyebrow) { color:var(--muted); }.contact-list { margin:42px 0 0; }.contact-list div { padding:14px 0; border-top:1px solid var(--line); }.contact-list dt { margin-bottom:3px; color:var(--accent); font-size:.69rem; font-weight:800; text-transform:uppercase; letter-spacing:.15em; }.contact-list dd { margin:0; color:#e8eeee; }.contact-list a:hover { color:var(--accent); }.request-form { padding:32px; background:#444; color:#fff; border-radius:3px; }.request-form label { display:block; margin:0 0 17px; color:#fff; font-size:.76rem; font-weight:800; }.form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }.request-form input:not([type=checkbox]),.request-form select,.request-form textarea { display:block; width:100%; margin-top:6px; padding:10px 0; background:transparent; border:0; border-bottom:1px solid #b7c5c3; border-radius:0; outline:0; color:#fff; font-size:.92rem; }.request-form textarea { resize:vertical; }.request-form input:focus,.request-form select:focus,.request-form textarea:focus { border-color:#138e81; }.checkbox-label { display:flex!important; align-items:flex-start; gap:9px; font-size:.72rem!important; font-weight:500!important; }.checkbox-label input { width:16px; height:16px; margin-top:2px; accent-color:#118c7f; }.inline-button { padding:0; border:0; background:none; color:inherit; text-decoration:underline; cursor:pointer; font:inherit; }.request-form .inline-button { color:#0f766e; }.submit-button { margin-top:9px; width:100%; }.hp-field { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }.form-message { margin-bottom:20px; padding:13px 15px; font-size:.85rem; border-left:3px solid; }.form-message.success { background:#d8f5ef; border-color:#118c7f; }.form-message.error { background:#fae5e3; border-color:#bf3e38; }
.site-footer { padding:38px 0; background:#080c10; border-top:1px solid var(--line); }.footer-inner { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:30px; }.site-footer p { margin:0; color:var(--muted); font-size:.77rem; }.footer-links { display:flex; gap:18px; color:var(--muted); font-size:.76rem; }.footer-links .inline-button:hover { color:var(--accent); }
.modal-active { overflow:hidden; }.modal { position:fixed; z-index:70; inset:0; display:grid; place-items:center; padding:25px; background:rgba(1,5,8,.78); backdrop-filter:blur(8px); }.modal[hidden] { display:none; }.modal-panel { position:relative; width:min(900px,100%); max-height:min(790px,calc(100vh - 50px)); overflow:auto; display:grid; grid-template-columns:.9fr 1.1fr; background:#eaf1f0; color:#132027; box-shadow:0 24px 80px rgba(0,0,0,.52); }.modal-panel-text { display:block; width:min(640px,100%); }.modal-image { height:100%; min-height:420px; object-fit:cover; }.modal-content { padding:56px; }.modal-content h2 { margin:0 0 23px; font-family:Georgia,serif; font-size:2.5rem; font-weight:400; line-height:1; }.modal-content .button { margin-top:28px; }.modal-close { position:absolute; z-index:2; top:12px; right:14px; width:36px; height:36px; border:0; border-radius:50%; background:#15232a; color:#fff; font-size:1.65rem; line-height:1; }.modal-close:hover { background:#0d6860; }.detail-list { margin:0; padding:0; list-style:none; }.detail-list li { position:relative; margin:0 0 13px; padding-left:25px; }.detail-list li::before { content:""; position:absolute; left:0; top:.55em; width:10px; height:2px; background:var(--accent); }.lightbox { padding:40px; }.lightbox-panel { position:relative; max-width:min(1100px,100%); max-height:100%; }.lightbox-panel img { max-height:calc(100vh - 80px); width:auto; }.legal-modal .modal-content { font-size:.92rem; }.reveal { opacity:0; transform:translateY(17px); transition:opacity .6s ease,transform .6s ease; }.reveal.is-visible { opacity:1; transform:none; }
@media (max-width:900px) { .split-intro { grid-template-columns:1fr 1.35fr; }.contact-chip { grid-column:2; }.service-grid,.package-grid { grid-template-columns:repeat(2,1fr); }.request-layout { gap:45px; }.gallery-grid { min-height:500px; }.modal-content { padding:42px; } }
@media (max-width:650px) { .page-shell { width:min(calc(100% - 32px),var(--page)); }.header-inner { min-height:67px; }.menu-toggle { display:block; }.main-navigation { position:absolute; top:67px; left:0; right:0; display:none; padding:18px 16px 22px; flex-direction:column; align-items:stretch; gap:0; background:#0d141a; border-bottom:1px solid var(--line); }.main-navigation.is-open { display:flex; }.main-navigation a { padding:13px 0; }.nav-cta { margin-top:9px; text-align:center; }.hero { height:auto; min-height:635px; }.hero h1 { font-size:clamp(3.15rem,16vw,4.6rem); }.hero-copy { font-size:1rem; }.hero-facts { margin-top:41px; font-size:.63rem; }.hero-facts li { padding:0 10px; }.section { padding:76px 0; }.split-intro,.request-layout { display:block; }.split-intro .eyebrow { margin-bottom:25px; }.contact-chip { margin-top:32px; }.section-heading { margin-bottom:32px; }.service-grid,.package-grid { grid-template-columns:1fr; }.service-card,.service-card-content { min-height:365px; }.gallery-grid { display:grid; grid-template-columns:1fr 1fr; grid-template-rows:240px 170px 170px; min-height:0; gap:7px; }.gallery-item:nth-child(1) { grid-column:span 2; grid-row:auto; }.gallery-item:nth-child(n+5) { display:none; }.form-row { grid-template-columns:1fr; gap:0; }.request-form { margin-top:42px; padding:24px 19px; }.footer-inner { grid-template-columns:1fr; gap:17px; }.modal { padding:14px; }.modal-panel { grid-template-columns:1fr; max-height:calc(100vh - 28px); }.modal-image { min-height:205px; height:240px; }.modal-content { padding:34px 24px; }.modal-content h2 { font-size:2.12rem; }.lightbox { padding:18px; }.lightbox-panel img { max-height:calc(100vh - 36px); }.scroll-hint { display:none; } }select option {color:#444}

.request-form .form-message.success { color:#0d4c45; }
.request-form .form-message.error { color:#842d29; }
.cookie-banner { position:fixed; z-index:65; right:18px; bottom:18px; left:18px; display:flex; justify-content:center; pointer-events:none; }
.cookie-banner[hidden] { display:none; }
.cookie-panel { width:min(100%,820px); display:grid; grid-template-columns:1.15fr .85fr; gap:26px; padding:25px 28px; background:#eaf3f1; color:#122027; box-shadow:0 22px 75px rgba(0,0,0,.52); border-left:4px solid #47d6c4; pointer-events:auto; }
.cookie-copy .eyebrow { margin-bottom:9px; color:#12776d; }.cookie-copy h2 { margin:0 0 7px; font:400 1.8rem/1 Georgia,serif; }.cookie-copy p:not(.eyebrow) { margin:0 0 10px; font-size:.84rem; }.cookie-copy .inline-button { color:#0c7167; font-size:.8rem; font-weight:800; }
.cookie-form fieldset { margin:0; padding:0; border:0; }.cookie-form legend { margin-bottom:9px; font-size:.74rem; font-weight:800; text-transform:uppercase; letter-spacing:.1em; }.cookie-choice { display:flex; gap:9px; margin:9px 0; font-size:.82rem; }.cookie-choice input { width:16px; height:16px; margin-top:3px; accent-color:#117c72; }.cookie-choice small { display:block; color:#506266; font-size:.73rem; }.cookie-choice-muted { opacity:.72; }
.cookie-actions { display:flex; gap:9px; margin-top:17px; }.cookie-button { min-height:39px; padding:8px 11px; border:1px solid #117c72; background:#117c72; color:#fff; font-size:.75rem; font-weight:800; cursor:pointer; }.cookie-button-quiet { background:transparent; color:#0e6d64; }.cookie-button:hover { filter:brightness(1.08); }
@media (max-width:650px) { .cookie-banner { right:10px; bottom:10px; left:10px; }.cookie-panel { display:block; padding:21px 18px; }.cookie-form { margin-top:20px; }.cookie-actions { flex-direction:column-reverse; }.cookie-button { width:100%; } }