@charset "UTF-8";
:root{--ink:#17221f;--muted:#5b625b;--page:#f6f4ee;--paper:#fffdf7;--line:#d6d4ca;--red:#ab442f;--serif:Georgia,"Times New Roman",serif;--sans:Arial,"Helvetica Neue",sans-serif;--pad:clamp(24px,6.3vw,104px)}
*{box-sizing:border-box}html{scroll-behavior:auto}body{margin:0;background:var(--page);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.55}button,input,select,textarea{font:inherit;color:inherit}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}button{border:0;background:none}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #dc9154;outline-offset:4px}h1,h2,h3,p,blockquote{margin:0}svg,img{display:block}em{font-weight:400}.container{max-width:1640px;margin:auto;padding-left:var(--pad);padding-right:var(--pad)}.skip{position:fixed;top:-80px;left:18px;padding:10px 20px;background:white;z-index:10}.skip:focus{top:12px}
.header{position:absolute;inset:0 0 auto;z-index:3;color:#fff}.head-inner{height:92px;display:flex;align-items:center;gap:36px;position:relative}.head-inner:after{content:"";position:absolute;bottom:0;left:var(--pad);right:var(--pad);height:1px;background:#ffffff45}.brand{display:inline-flex;align-items:center;gap:11px;white-space:nowrap}.mark{width:38px;height:38px;color:#eee4cc}.brand>span{font:26px/1 var(--serif);letter-spacing:.095em}.brand small{display:block;font:8px/1.1 var(--sans);letter-spacing:.19em;margin:6px 0 0}.header nav{display:flex;align-items:center;justify-content:center;gap:clamp(16px,2.5vw,48px);margin-left:auto}.header nav a{font-size:13px;font-weight:500;white-space:nowrap;border-bottom:1px solid transparent}.header nav a:hover{border-color:currentColor}.header-contact{background:#f3efe5;color:#19231f;padding:0 20px;min-height:44px;font-size:13px;font-weight:600;white-space:nowrap;transition:background .18s}.header-contact:hover{background:#fffdf7}.hamburger{display:none}.hero{position:relative;isolation:isolate;color:var(--paper);background:#253332;display:flex;flex-direction:column;justify-content:center;min-height:clamp(620px,80svh,890px);overflow:hidden}.hero-shade{position:absolute;inset:0;z-index:-2}.hero-shade{z-index:-1;background:linear-gradient(90deg,rgba(12,22,22,.87),rgba(14,20,21,.65) 28%,rgba(15,19,18,.15) 62%,rgba(10,14,13,.04)),linear-gradient(0deg,rgba(12,18,17,.66) 0%,transparent 38%,transparent 65%,rgba(12,18,17,.53))}.hero-content{padding-top:110px;padding-bottom:92px;width:100%}.hero-kicker,.kicker,.micro,.hero-location,.index,.card-cn,.hero-foot,.about-visual span,.detail-cn,.back{font-size:10px;letter-spacing:.16em;font-weight:600}.hero-kicker,.kicker,.hero-location{display:flex;align-items:center;gap:12px}.hero-kicker span{width:30px;height:2px;background:#ce7351}.hero h1{font:400 clamp(77px,7.8vw,132px)/.97 var(--serif);letter-spacing:-.059em;margin:29px 0 24px}.hero h1 em{color:#e3c995}.hero-content>p{font-size:clamp(15px,1.2vw,20px);line-height:1.68;color:#f3f0e7}.cta{display:inline-flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;padding:15px 24px;min-height:52px;transition:background .2s}.hero .cta{margin-top:28px}.cta.red{background:#aa422d;color:#fff}.cta.red:hover{background:#bc5039}.cta.dark{background:var(--ink);color:white}.cta.ivory{background:var(--page);color:var(--ink)}.cta.dark:hover{background:#304239}.cta.ivory:hover{background:#e5dfd1}.hero-foot{position:absolute;bottom:23px;left:0;right:0;display:flex;align-items:center;justify-content:space-between}.hero-location{font-size:9px;letter-spacing:.18em}.hero-location i{border-radius:50%;width:6px;height:6px;background:#d6b77f}.slide-controls{display:flex;gap:6px;align-items:center}.slide-controls button{position:relative;min-width:44px;height:44px;padding:0 6px;color:#eeeae2;font:500 12px var(--sans);font-variant-numeric:tabular-nums;letter-spacing:.1em}.slide-controls button::after{content:"";position:absolute;left:6px;right:6px;bottom:5px;height:1px;background:currentColor;opacity:.4}.slide-controls button[aria-pressed=true]::after,.slide-controls button:hover::after{height:2px;opacity:1}.review-buttons button{width:36px;height:36px;border:1px solid #ffffff65;color:inherit}
.section{padding-top:clamp(60px,6.2vw,105px);padding-bottom:clamp(60px,6.2vw,105px)}.kicker{color:#5c615a;line-height:1.6}.kicker i{width:23px;height:2px;background:var(--red)}.section-title{display:flex;align-items:end;justify-content:space-between;gap:26px;margin:15px 0 34px}.section-title>p,.intro,.detail-points p{color:var(--muted);line-height:1.65}.section-title>p{font-size:14px}.section h2,.about h2,.contact h2,dialog h2{font:400 clamp(40px,4.6vw,84px)/1.05 var(--serif);letter-spacing:-.055em}.section h2 em,.about h2 em,.contact h2 em{color:#766651}.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line);border-left:1px solid var(--line)}.service-card{position:relative;min-height:240px;padding:22px 26px 27px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);background:linear-gradient(135deg,#fffdf655,#ede9de44);transition:background .2s}.service-card:hover{background:#e9e4d8}.card-top{display:flex;justify-content:space-between;align-items:center}.index{font-size:9px;color:#666c63}.card-cn{color:#80796b;letter-spacing:.15em;font-weight:400;font-size:12px}.service-ico{width:58px;height:58px;margin:13px 0 9px;color:#926045}.service-card h3{font:400 clamp(24px,2.1vw,36px)/1.14 var(--serif);letter-spacing:-.035em;margin-bottom:8px}.service-card p{font-size:14px;color:var(--muted);max-width:90%;line-height:1.45}.service-card:is(:hover,:focus-visible) h3,.foot-inner>a:not(.brand):hover,.back{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.22em}
.about{display:grid;grid-template-columns:1fr 1fr;background:#1b2925;color:#f4f1e8}.about-visual{position:relative;min-height:460px}.about-visual img{position:absolute;width:100%;height:100%;object-fit:cover}.about-visual:after{content:"";position:absolute;inset:65% 0 0;background:linear-gradient(transparent,#111a18a0)}.about-visual span{position:absolute;left:var(--pad);bottom:25px;color:white;z-index:1}.about-text{align-self:center;padding:clamp(44px,6vw,104px) var(--pad)}.about .kicker,.contact .kicker{color:#e0dcd0}.about h2{margin:20px 0 25px}.about h2 em,.contact h2 em{color:#d7be92}.about-text>p:not(.kicker){color:#d0d7ce;font-size:15px;line-height:1.7;margin:10px 0}.underlink{padding:9px 0 6px;border-bottom:1px solid currentColor;font-size:14px;font-weight:600;margin-top:16px}
.estimator{display:grid;grid-template-columns:1fr 1.1fr;border:1px solid var(--line);background:var(--paper)}.est-controls,.est-result{padding:clamp(25px,3vw,52px)}.est-result{border-left:1px solid var(--line);background:#eeede5;display:flex;align-items:start;flex-direction:column}.est-controls label,dialog label{display:block;font-size:13px;font-weight:600;margin-bottom:7px}.est-controls select,.est-controls input[type=number],dialog select,textarea{width:100%;padding:11px 12px;border:1px solid #b9b9af;background:#fffefa;border-radius:0;color:var(--ink)}.est-controls select{cursor:pointer}.est-controls select:focus,.est-controls input:focus,textarea:focus{border-color:var(--red)}#calc-fields{margin-top:16px}.field-row{display:grid;grid-template-columns:1fr 90px;gap:14px}.check{display:flex!important;align-items:start;gap:9px;font-weight:400!important;line-height:1.5;margin:16px 0 0!important}.check input{accent-color:var(--red);width:16px;height:16px;flex:none;margin:2px 0}.result-top{width:100%;display:flex;justify-content:space-between;align-items:center;gap:10px}.micro{font-size:9px;color:var(--muted)}.currencies{display:flex;border:1px solid #bbbcb1}.currencies button{padding:4px 10px;font-size:14px}.currencies button[aria-pressed=true],.currencies button.active{background:var(--ink);color:white}#calc-result{font:400 clamp(36px,3.8vw,64px)/1.2 var(--serif);letter-spacing:-.04em;margin:19px 0 13px}.money-main{display:block}.money-other,.money-alt,.price-equivalents{display:block;font:14px/1.5 var(--sans);letter-spacing:0;color:#596057}.est-result>p,.calc-tip{font-size:14px;line-height:1.55;color:var(--muted)}.rate-note{font-size:11px!important;margin-top:9px}.est-result .underlink{margin-top:auto;padding-top:21px}.review-section{background:#e8e4d9;padding:64px 0}.review-inner{display:grid;grid-template-columns:1fr 2.1fr;gap:5vw}.review-topic{font:italic 20px var(--serif);margin-top:10px;color:#736653}.quote-mark{font:72px/.75 var(--serif);color:var(--red)}blockquote{font:400 clamp(24px,2.5vw,43px)/1.35 var(--serif);letter-spacing:-.025em}.review-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:23px}.review-buttons{display:flex;gap:6px}.review-buttons button{border-color:#aaa89d}.review-buttons button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.contact{padding:70px 0;background:#18231f;color:var(--paper)}.contact-inner,.foot-inner{display:flex;align-items:center;justify-content:space-between;gap:28px}.contact h2{margin-top:22px}.contact h2 em{display:inline-block}footer{background:#18231f;color:#c2c9bd;padding-bottom:28px}.foot-inner{border-top:1px solid #ffffff2a;padding-top:24px;flex-wrap:wrap}.foot-inner .brand>span{font-size:19px}.foot-inner .mark{width:29px}.foot-inner .brand small{font-size:6px}.foot-inner p,.credits{font-size:11px}.foot-inner>a:not(.brand){font-size:13px}.credits{opacity:.8}
dialog{color:var(--ink);background:var(--page);border:0;padding:38px;width:min(520px,calc(100vw - 26px));max-height:92svh;box-shadow:0 20px 80px #0004}dialog::backdrop{background:#10201bc9;backdrop-filter:blur(3px)}dialog h2{font-size:42px;margin:20px 0 24px}dialog label{margin:14px 0 6px}textarea{resize:vertical}.close-form{position:absolute;right:14px;top:8px}.close-form button{font-size:28px;padding:4px 8px}.form-note{color:var(--muted);font-size:13px;line-height:1.55;margin:14px 0}.text-button{font-size:12px;text-decoration:underline;margin-top:10px;padding:7px}.subpage .header{position:relative;background:#1b2824}.detail-head{background:#24332c;color:#f8f3e6;position:relative;overflow:hidden}.detail-head>.container{position:relative;padding-top:34px;padding-bottom:64px}.back{display:inline-block;font-size:11px;letter-spacing:.04em;margin-bottom:50px;color:#e7e5d8}.detail-head .kicker{color:#dfc596}.detail-head h1{position:relative;z-index:1;max-width:850px;font:400 clamp(48px,6.8vw,110px)/1.02 var(--serif);letter-spacing:-.055em;margin:20px 0}.detail-head p:not(.kicker){font-size:18px;position:relative;z-index:1}.detail-cn{position:absolute;right:var(--pad);bottom:16px;font:clamp(50px,8vw,140px) var(--serif);color:#ffffff0e;pointer-events:none}.detail-body{display:grid;grid-template-columns:1fr 1fr;gap:9vw}.detail-body h2,.detail-est h2{font-size:clamp(37px,4vw,68px)}.intro{margin:20px 0 28px}.detail-points article{position:relative;padding:18px 0 18px 38px;border-top:1px solid var(--line)}.detail-points small{position:absolute;left:0;top:24px;color:var(--red);font-size:10px}.detail-points h3{font:26px var(--serif);margin:0 0 8px}.detail-points p{font-size:15px}.detail-est{padding-top:0}.detail-est h2{margin:12px 0 25px}
@media(min-width:1650px){.about-text{max-width:840px}.hero{min-height:800px}}
@media(max-width:1000px){.head-inner{gap:20px;height:78px}.header nav{gap:16px}.header nav a{font-size:12px}.brand>span{font-size:21px}.mark{width:31px}.brand small{font-size:6.5px}.service-card{padding:18px;min-height:220px}.about-text{padding:40px}.hero{min-height:620px}}
@media(max-width:780px){.header nav{display:none;position:absolute;top:100%;left:0;right:0;margin:0;padding:18px var(--pad);background:#192923;border-bottom:1px solid #ffffff38;box-shadow:0 8px 22px #0003}.header nav.open{display:grid;gap:0}.header nav a{font-size:16px;padding:10px 0}.head-inner{gap:12px;height:70px}.header-contact{margin-left:auto;padding:8px 10px;font-size:12px}.hamburger{display:grid;gap:6px;padding:10px 0 10px 6px}.hamburger i{width:22px;height:1px;background:white}.hero{min-height:620px}.hero-content{padding-top:105px;padding-bottom:105px}.hero-shade{background:linear-gradient(90deg,#101919bc,#131c1844),linear-gradient(0deg,#0f1616b3,transparent 40%,#0f191955)}.hero h1{font-size:clamp(65px,12vw,90px)}.section-title{align-items:start;flex-direction:column;gap:14px}.section-title>p br{display:none}.services-grid{grid-template-columns:repeat(2,1fr)}.about{grid-template-columns:1fr}.about-visual{min-height:290px}.about-text{padding:40px var(--pad)}.about h2 br{display:none}.about h2 em{margin-left:.15em}.estimator{grid-template-columns:1fr}.est-result{border-left:none;border-top:1px solid var(--line)}.review-inner,.detail-body{grid-template-columns:1fr;gap:28px}.contact-inner{align-items:start;flex-direction:column}.foot-inner{justify-content:flex-start}.foot-inner p{flex:1}.detail-head>.container{padding-bottom:45px}.back{margin-bottom:28px}}
@media(max-width:450px){:root{--pad:20px}.brand>span{font-size:19px}.mark{width:27px}.brand{gap:7px}.brand small{font-size:6px}.header-contact{font-size:11px}.hero{min-height:580px}.hero-content>p{font-size:14px}.hero h1{font-size:64px}.services-grid{grid-template-columns:1fr}.service-card{padding:18px 20px 20px 77px;min-height:112px}.service-ico{position:absolute;left:14px;top:32px;width:48px;height:48px;margin:0}.card-cn{display:none}.service-card h3{font-size:26px;margin-top:4px}.service-card p{font-size:13px;max-width:100%}.hero-foot{bottom:19px}.est-controls,.est-result{padding:22px}.contact{padding:45px 0}.foot-inner p{flex-basis:100%}dialog{padding:28px 22px}.field-row{grid-template-columns:1fr 78px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}

[hidden]{display:none!important}.money-other{font:15px/1.5 var(--sans);letter-spacing:0;margin-top:7px;color:#515c53}.rate-note a{text-decoration:underline;text-underline-offset:.16em}
.social-links{display:flex;align-items:center;gap:10px;flex-shrink:0}
.social-links a{display:grid;place-items:center;width:44px;height:44px;border:1px solid #f6f4eb40;border-radius:50%;transition:background .18s,border-color .18s}
.social-links img{width:22px;height:22px;filter:brightness(0) invert(1);opacity:.88}
.social-links a:hover{background:#f6f4eb16;border-color:#f6f4eb88}
.social-links a:focus-visible{outline:2px solid #d7c198;outline-offset:4px}
@media(max-width:650px){.foot-inner .social-links{margin-right:auto}.foot-inner .credits{font-size:12px}}
:root{--control:48px;--field-rule:#b9b9ab;--surface:#fffdf7;--highlight:#323e32}
.sr,.choice-grid input,.format-list input,.stage-choice input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.choice-set,.format-list{border:0;margin:0;padding:0;min-width:0}.choice-set legend,.field-label,.est-controls label[for=hours],#brief-form>label{display:block;font:600 13px/18px var(--sans);margin:0 0 8px;padding:0;color:#29332a}
.choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;align-items:stretch}
.choice-grid label,.format-list label{margin:0!important;padding:0;position:relative;font:inherit;cursor:pointer;min-width:0}
.choice-grid label{display:flex}.choice-grid span{display:flex;align-items:center;justify-content:center;text-align:center;width:100%;min-height:44px;padding:8px 6px;font:500 13px/1.23 var(--sans);border:1px solid #ceccbe;background:#f7f5ed;color:#42493f;transition:background .15s,border-color .15s}
.choice-grid label:hover span{border-color:#817e68}.choice-grid input:checked+span{background:var(--highlight);border-color:var(--highlight);color:#fffaf0}
.choice-grid input:focus-visible+span,.format-list input:focus-visible+span,.stage-choice input:focus-visible+span{outline:2px solid #79573d;outline-offset:2px}
.field-row{grid-template-columns:minmax(0,1fr) 84px;align-items:start;gap:12px}.field-row>*{min-width:0}.format-menu{position:relative;min-width:0}
.format-menu summary,.est-controls input[type=number],#brief-contact{display:flex;align-items:center;box-sizing:border-box;height:var(--control);min-height:var(--control);border:1px solid var(--field-rule);border-radius:0;background:var(--surface);color:var(--ink);font:400 16px/1.2 var(--sans);padding:0 13px;margin:0;width:100%}
.format-menu summary{justify-content:space-between;gap:8px;cursor:pointer;list-style:none}.format-menu summary::-webkit-details-marker,summary::-webkit-details-marker{display:none}.format-menu summary i{width:12px;height:2px;background:currentColor;position:relative;flex:none;color:#717968}.format-menu:not([open]) summary i::before{content:"";position:absolute;inset:0;background:currentColor;transform:rotate(90deg)}
.format-menu[open] summary{border-color:var(--highlight)}.format-menu summary:focus-visible,.guest-feature summary:focus-visible{outline:2px solid #79573d;outline-offset:3px}
.format-list{position:absolute;inset:auto 0;top:calc(100% + 4px);z-index:3;padding:5px;background:var(--surface);border:1px solid var(--field-rule);box-shadow:0 8px 26px #19231520}
.format-list label,.format-list span{display:block}.format-list span{padding:11px 26px 11px 10px;min-height:44px;font:400 15px/1.4 var(--sans)}.format-list input:checked+span{background:#e9e9de}.format-list input:checked+span::after{content:"";width:6px;height:6px;margin:auto;position:absolute;right:10px;top:0;bottom:0;border-radius:50%;background:#8c5138}.format-list label:hover span{background:#efeee6}.est-controls input[type=number]{display:block;font-variant-numeric:tabular-nums}.est-controls .check{min-height:44px;align-items:center}.est-controls .check input{margin:0}.currencies button{min-width:40px;min-height:40px}.hero-signature{font-size:9px;letter-spacing:.18em}
.review-heading h2{font:400 clamp(35px,4.2vw,67px)/1.1 var(--serif);letter-spacing:-.045em;margin:13px 0 30px}.review-heading em{color:#75634d}.guest-spread{display:grid;grid-template-columns:1.6fr 1fr;gap:clamp(20px,5vw,76px)}.guest-spread figure{margin:0;min-width:0;border-top:1px solid #a6a795;padding-top:20px}.guest-spread figcaption{font:600 11px/1.5 var(--sans);letter-spacing:.12em;margin-bottom:18px}.guest-spread figcaption span{font-weight:400;letter-spacing:0;color:#5e6457;margin-left:6px}.guest-feature blockquote{font:400 clamp(25px,2.55vw,43px)/1.2 var(--serif);letter-spacing:-.03em}.guest-aside blockquote{font:italic clamp(22px,2vw,31px)/1.25 var(--serif)}.guest-aside p,.guest-feature details p{font:15px/1.65 var(--sans);color:#4f584d;margin:12px 0}.guest-feature summary{display:inline-block;text-decoration:underline;text-underline-offset:4px;padding:14px 0;cursor:pointer;font-size:13px}
dialog#brief{width:min(540px,calc(100% - 28px));padding:32px;max-height:calc(100dvh - 24px);overscroll-behavior:contain}dialog .close-form{top:8px;right:8px}dialog .close-form button{width:44px;height:44px;color:#424b41}.brief-intro h2,#brief-success h2{margin:13px 0 8px;font-size:clamp(32px,4.5vw,44px)}.brief-intro>p:not(.kicker),#receipt{font:14px/1.55 var(--sans);color:var(--muted);margin-bottom:20px}#brief-form>label{margin:16px 0 6px}#brief-form textarea{font:400 16px/1.45 var(--sans);padding:10px 13px;border-color:var(--field-rule);background:var(--surface);min-height:76px}.form-bottom{display:flex;align-items:center;gap:14px;margin-top:14px}.form-bottom output,#brief-feedback{font:13px/1.4 var(--sans)}.form-bottom button{flex:none}
@media(max-width:1000px){.choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:780px){.est-controls,.est-result{padding:24px}.guest-spread{grid-template-columns:1fr}.header-contact{padding:0 12px}.hamburger{min-width:44px;min-height:44px;align-content:center;justify-items:end}.guest-spread figcaption{margin-bottom:10px}}
@media(max-width:450px){:root{--pad:16px}.est-controls,.est-result{padding:18px 16px}.head-inner{gap:6px}.field-row{grid-template-columns:minmax(0,1fr) 66px;gap:8px}.format-menu summary{padding:0 9px}.format-menu summary,.est-controls input[type=number]{font-size:16px}.format-menu summary span{line-height:1.16}.choice-grid{gap:5px}.choice-grid span{padding:7px 4px}.service-card{min-height:124px}.hero h1{font-size:clamp(50px,15vw,64px)}.brand>span{font-size:16px}.brand small{font-size:5px}.mark{width:25px}.header-contact{padding:0 8px}.guest-spread{gap:25px}dialog#brief{width:100%;max-width:none;max-height:95dvh;margin:auto 0 0;padding:24px 18px max(18px,env(safe-area-inset-bottom))}.form-bottom{align-items:stretch;flex-direction:column;gap:6px}.form-bottom .cta{width:100%}.brief-intro>p:not(.kicker){margin-bottom:12px}.micro{letter-spacing:.09em}}
@media(max-height:540px){dialog#brief{max-height:98dvh}}

.scene-picture{display:block;position:absolute;inset:0;z-index:-2}.scene-picture img{height:100%;width:100%;object-fit:cover;object-position:center 51%;filter:saturate(.86)}.hero-shade{z-index:-1}.hero-kicker,.hero-location{text-transform:uppercase}.photo-dots{display:flex;align-items:center;gap:0}.photo-dots button{width:30px;height:44px;display:grid;place-items:center;padding:0}.photo-dots i{width:8px;height:8px;border-radius:100%;background:#ffffff7a;box-shadow:0 0 0 1px #151a1845}.photo-dots button[aria-pressed=true] i{background:#fff;box-shadow:0 0 0 3px #ffffff38}.photo-dots button:hover i{background:#fff}.kicker i{display:none}
@media(max-width:450px){.hero-foot{align-items:start;flex-direction:column;gap:0}.photo-dots{margin-left:-9px}.photo-dots button{width:27px}.scene-picture img{object-position:center center}}
@media(max-width:360px){.head-inner{padding-inline:10px;gap:4px}.head-inner .brand{gap:4px}.head-inner .brand small{display:none}.head-inner .brand>span{font-size:14px}.header-contact{font-size:11px;padding:0 7px}.hamburger{min-width:36px}.result-top{gap:4px}.currencies button{min-width:32px}}
.hero-foot{display:grid;grid-template-columns:minmax(0,1fr);justify-items:center;align-items:center;gap:0;bottom:18px;text-align:center}
.hero-location{justify-content:center;min-height:15px}.photo-dots{margin:0;justify-content:center;align-self:center}
.freight-photo{position:relative;isolation:isolate;overflow:hidden;margin:0;min-height:400px;background:#26362e}.freight-photo picture,.freight-photo img{position:absolute;inset:0;display:block;width:100%;height:100%}.freight-photo img{object-fit:cover;object-position:49% 55%}.freight-photo::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,rgba(12,23,23,.86),rgba(12,23,23,.42) 28%,transparent 67%)}.freight-photo figcaption{position:absolute;z-index:1;left:clamp(24px,4vw,68px);right:clamp(24px,4vw,68px);bottom:clamp(28px,4vw,64px);color:#faf7ed}.freight-photo figcaption small{display:block;font:600 10px/1.5 var(--sans);letter-spacing:.16em}.freight-photo figcaption strong{display:block;margin-top:8px;font:400 clamp(32px,3.8vw,62px)/1.08 var(--serif);letter-spacing:-.035em}
@media(max-width:780px){.freight-photo{min-height:0;aspect-ratio:16/9}.freight-photo figcaption{left:var(--pad);bottom:22px}}
@media(max-width:450px){.freight-photo{aspect-ratio:4/3}.hero-foot{bottom:10px}}

.scene-picture.incoming { opacity: 0; }
.scene-picture img { filter: none; }

.tour-scenes { display: grid; grid-template-columns: 1.7fr 1fr; gap: clamp(12px, 2vw, 28px); margin-block: clamp(24px, 4vw, 64px) 0; }
.tour-scenes figure { margin: 0; min-width: 0; }
.tour-scenes picture { display: block; width: 100%; height: clamp(230px, 28vw, 450px); overflow: hidden; background: #243129; }
.tour-scenes img { width: 100%; height: 100%; object-fit: cover; }
.tour-scenes figcaption { margin-top: 7px; color: var(--muted); font: 12px/1.4 var(--sans); }
@media(max-width:600px) {
  .tour-scenes { grid-template-columns: 1.45fr 1fr; gap: 8px; }
  .tour-scenes picture { height: clamp(155px, 43vw, 230px); }
  .tour-scenes figcaption { font-size: 11px; }
}

.detail-cn { position: static; display: block; margin-top: 18px; color: #c5ccbd; font: 400 15px/1.4 var(--sans); letter-spacing: .14em; }

/* Keep the six dots centred while giving each dot a full finger-sized target. */
.hero-foot { z-index: 2; pointer-events: none; }
.photo-dots { pointer-events: auto; }
.photo-dots button { width: 44px; height: 44px; cursor: pointer; }
.photo-dots i { pointer-events: none; }
.choice-grid > label:last-child:nth-child(7), .service-card:last-child:nth-child(7) { grid-column: 1 / -1; }
.service-card:last-child:nth-child(7) { min-height: 0; }
@media(min-width:451px) {
  .service-card:last-child:nth-child(7) { display:grid; grid-template-columns:72px 1fr; align-items:center; column-gap:18px; }
  .service-card:last-child:nth-child(7) .card-top { grid-column:1/-1; }
  .service-card:last-child:nth-child(7) .service-ico { grid-column:1;grid-row:2/4; }
  .service-card:last-child:nth-child(7) h3 { margin:12px 0 2px; }
  .service-card:last-child:nth-child(7) p { grid-column:2; }
}
.format-menu .format-list { max-height: min(300px, 43dvh); overflow-y: auto; overscroll-behavior: contain; }
.price-from { font:500 16px/1.2 var(--sans); letter-spacing:0; color:var(--muted); display:block; }
#brief-estimate { margin:14px 0; padding:12px 14px; background:#eeede5; font:500 15px/1.5 var(--sans); }
#brief .draft-hint { margin:8px 0 0; color:var(--muted); font:13px/1.45 var(--sans); }
#calc-result.text-estimate { font-size:clamp(28px,3vw,44px); overflow-wrap:break-word; }
#brief-form .choice-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
html:has(#brief[open]) { overflow:hidden; }
dialog#brief { overflow-y:auto; }
@media (min-width:451px) {
  dialog#brief { margin:clamp(12px,5dvh,48px) auto auto; max-height:90dvh; }
}
.format-list { max-height:min(340px,45dvh); overflow-y:auto; }
.est-controls .check[hidden] { display:none!important; }
/* The same type, dividers and controls are used throughout the price catalogue. */
#prices {
  position:relative;
  padding-block:clamp(24px,3vw,44px);
  scroll-margin-top:8px;
}
#short-prices.price-anchor { position:absolute; inset:0 auto auto 0; scroll-margin-top:8px; }
#prices > .kicker { margin-bottom:4px; }
.price-heading,.quote-main,.booking-controls { display:flex; align-items:center; }
#prices .price-heading { justify-content:space-between; gap:12px; margin:0 0 16px; }
#prices .price-heading h2 { margin:0; font:400 clamp(30px,3.5vw,52px)/1.06 var(--serif); letter-spacing:-.045em; }
.price-heading em { color:#786950; }
.price-money .currencies { display:inline-flex; border:1px solid var(--line); }
.price-money button { min-width:44px; min-height:44px; padding:4px 8px; font-weight:500; }
.price-book,.price-nav,.offer-list { min-inline-size:0; }
.price-nav,.offer-list { margin:0; padding:0; border:0; }
.price-rail { display:flex; justify-content:space-between; border-block:1px solid var(--line); }
.price-rail label,.offer { display:flex; min-width:0; position:relative; cursor:pointer; }
.price-rail label>span { display:flex; align-items:center; min-height:44px; padding:8px clamp(4px,.75vw,12px); font:500 clamp(13px,1vw,16px)/1.25 var(--sans); color:var(--muted); border-bottom:2px solid transparent; }
.price-rail input:checked+span { color:var(--ink); border-bottom-color:var(--ink); }
.price-rail label:hover,.offer:hover { background:#eeeee5; }
.price-book input:focus-visible+span,.price-book summary:focus-visible { outline:2px solid #49664c; outline-offset:-2px; }
#direction-toggle,#variant-switch { display:none; }
.price-book #calc-fields { margin:12px 0 0; }
.offer-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:clamp(16px,4vw,60px); }
.offer-body {
  display:grid; align-items:center; width:100%; min-height:52px;
  grid-template-columns:14px minmax(0,1fr) auto; column-gap:12px;
  padding:8px 10px; border-bottom:1px solid var(--line);
}
.offer-body::before { content:""; grid-column:1; grid-row:1/span 2; width:13px; height:13px; border:1px solid #859085; border-radius:50%; box-sizing:border-box; }
.offer-name { grid-column:2; grid-row:1; align-self:end; font:500 15px/1.28 var(--sans); }
.offer-meta { grid-column:2; grid-row:2; align-self:start; color:var(--muted); font:13px/1.32 var(--sans); }
.offer-body:not(:has(.offer-meta)) .offer-name { grid-row:1/span 2; align-self:center; }
.offer-price { grid-column:3; grid-row:1/span 2; text-align:right; font:500 17px/1.25 var(--sans); font-variant-numeric:tabular-nums; }
.offer-price small,.offer-price.on-request { font:400 13px/1.3 var(--sans); color:var(--muted); }
.offer input:checked+.offer-body { background:#e6eadf; }
.offer input:checked+.offer-body::before { border:4px solid #36513e; }
.booking-controls { gap:8px 24px; flex-wrap:wrap; margin:8px 0; }
.duration,.booking-controls .check { display:flex!important; align-items:center; gap:10px; min-height:44px; margin:0!important; font:14px/1.35 var(--sans); }
.duration input { width:68px; height:44px; padding:0 10px; border:1px solid #a5aa9c; border-radius:0; background:var(--paper); font:500 16px var(--sans); }
.booking-controls input { accent-color:#37503b; }
.price-book :is(button,input[type=number],input[type=checkbox]):focus-visible,.price-money button:focus-visible { outline:2px solid #49664c; outline-offset:2px; }
.quote-band { padding:12px clamp(12px,1.6vw,24px); margin-top:12px; background:#e9ece2; border-top:1px solid #b6c1b1; }
.quote-discount { margin:10px 0 0; min-height:44px; font:14px/1.45 var(--sans); }
.quote-discount input { flex:0 0 auto; }
.quote-main { gap:10px clamp(18px,3vw,42px); }
.quote-kicker { font:500 12px/1.2 var(--sans); color:var(--muted); }
.quote-band #calc-result,.quote-band #calc-result.text-estimate { margin:2px 0 0; font:400 clamp(26px,2.45vw,36px)/1.12 var(--serif); letter-spacing:-.035em; }
.quote-band .price-from { display:inline; color:var(--ink); font:15px var(--sans); }
.quote-main>div { flex:none; }
.quote-main>p { flex:1; font:14px/1.45 var(--sans); color:#404c42; }
.quote-main .cta { min-height:44px; padding:9px 20px; white-space:nowrap; }
#quote-details summary { cursor:pointer; list-style:none; }
#quote-details summary { display:inline-flex; align-items:center; min-height:44px; color:#435745; font:13px/1.35 var(--sans); text-decoration:underline; text-underline-offset:3px; }
#quote-details p { max-width:88ch; padding:0 0 5px; font:14px/1.5 var(--sans); }
.catalog-rate { color:var(--muted); }
.catalog-rate:empty { display:none; }
.visa-group[open] summary::after { content:'−'; }
.price-book [hidden],.price-heading [hidden] { display:none!important; }
@media(max-width:850px) {
  #direction-toggle,#variant-switch { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; min-height:44px; padding:6px 4px; border-block:1px solid var(--line); text-align:left; }
  #variant-switch { display:none; }
  #direction-toggle small,#variant-switch small { margin-right:10px; color:var(--muted); font:13px/1.25 var(--sans); }
  #direction-toggle b,#variant-switch b { font:500 15px/1.3 var(--sans); }
  .direction-action,.variant-action { font:13px/1.25 var(--sans); color:#435745; text-decoration:underline; text-underline-offset:3px; }
  #direction-toggle[aria-expanded=false]+.price-rail { display:none; }
  .price-rail { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-top:0; }
  .price-rail label>span { width:100%; padding:8px; }
}
@media(max-width:650px) {
  #prices { padding-block:20px; }
  #prices .price-heading { margin:0 0 10px; }
  #prices .price-heading h2 { font-size:clamp(24px,6.6vw,35px); }
  .price-money button { min-width:34px; }
  #variant-switch { display:flex; border-top:0; }
  #variant-switch>span:first-child { display:grid; gap:2px; }
  #calc-fields.folded>#offer-options { display:none; }
  .price-book #calc-fields { margin-top:4px; }
  .offer-list { grid-template-columns:1fr; }
  .offer-body { padding:7px 4px; column-gap:8px; min-height:48px; }
  .offer-name { font-size:14px; }
  .offer-price { font-size:15px; }
  .offer-meta,.offer-price.on-request { font-size:12px; }
  .booking-controls { margin:4px 0; gap:0 16px; }
  .quote-band { margin-top:8px; padding:12px; }
  .quote-main { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px 12px; }
  .quote-main>p { grid-column:1/-1; grid-row:2; }
  .quote-main .cta { grid-column:2; grid-row:1; padding-inline:12px; }
  .quote-band #calc-result { overflow-wrap:anywhere; }
}

/* Navigation and offers share the fine rules and warm paper of the service pages. */
#prices .price-heading h2 { font-size:clamp(34px,4.6vw,68px); }
.price-money { display:flex; align-items:center; gap:12px; }
.currency-label { font:13px var(--sans); color:var(--muted); }
.price-money .currencies { padding:2px; border:0; border-radius:40px; background:#e8e6dc; }
.price-money button { border-radius:50%; }
.price-rail { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); }
.price-rail label>span { width:100%; flex-direction:column; justify-content:center; text-align:center; gap:3px; min-height:68px; padding:6px 3px; }
.price-rail b { font-weight:500; }
.price-rail .service-ico,.direction-symbol .service-ico { position:static; color:inherit; width:27px; height:27px; margin:0; stroke-width:2; }
.price-rail input:checked+span { background:#e7ebe1; color:#2e4334; }
.price-rail input:checked+span b { font-weight:600; }
.price-book #calc-fields { margin-top:18px; }
.offer-list { grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.offer { background:var(--paper); }
.offer-body { position:relative; display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-start; gap:3px; padding:14px 32px 14px 16px; border:1px solid var(--line); min-height:99px; }
.offer-body::before { position:absolute; top:16px; right:13px; }
.offer-body .offer-name,.offer-body:not(:has(.offer-meta)) .offer-name,.offer-body .offer-meta { align-self:auto; }
.offer-name { font:400 clamp(18px,1.45vw,23px)/1.16 var(--serif); letter-spacing:-.02em; }
.offer-price,.offer-price.on-request { margin-top:auto; padding-top:8px; color:var(--ink); font:600 15px/1.22 var(--sans); }
.offer-price.on-request { font-size:13px; font-weight:400; color:var(--muted); }
.offer input:checked+.offer-body { border-color:#7d917a; }
#calc-fields[data-service=shanghai]>.offer-list { grid-template-columns:repeat(4,minmax(0,1fr)); }
#calc-fields[data-service=accompaniment]>.offer-list { grid-template-columns:repeat(12,minmax(0,1fr)); }
#calc-fields[data-service=accompaniment] .offer { grid-column:span 3; }
#calc-fields[data-service=accompaniment] .offer:nth-last-of-type(-n+3) { grid-column:span 4; }
.visa-tools { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:6px 16px; margin:0 0 12px; }
.visa-filters { display:flex; flex-wrap:wrap; gap:2px; }
.visa-filters button { font:500 14px/1.2 var(--sans); padding:8px 12px; min-height:42px; border-radius:3px; color:var(--muted); }
.visa-filters button:hover { background:#ebece3; }
.visa-filters button[aria-pressed=true] { color:var(--ink); background:#e4e8dd; }
.visa-search input { font:15px var(--sans); border:1px solid var(--line); border-radius:3px; height:42px; width:210px; padding:8px 12px; background:var(--paper); color:var(--ink); }
.visa-picker .offer-list { grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr)); }
.visa-picker .offer-body { min-height:86px; }
#visa-feedback:not(.sr) { margin:8px 0; color:var(--muted); font-size:14px; }
@media(max-width:850px){
  .currency-label { display:none; }
  .price-rail { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .price-rail label>span { flex-direction:row; justify-content:flex-start; text-align:left; min-height:44px; gap:7px; padding-left:8px; }
  #direction-toggle { justify-content:flex-start; }
  .direction-action { margin-left:auto; }
  #calc-fields[data-service=shanghai]>.offer-list,#calc-fields[data-service=accompaniment]>.offer-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
  #calc-fields[data-service=accompaniment] .offer:nth-of-type(n) { grid-column:auto; }
  .visa-search { order:-1; }
}
@media(max-width:650px){
  #prices .price-heading h2 { font-size:clamp(25px,6.7vw,38px); }
  .price-book #calc-fields { margin-top:8px; }
  .offer-list,#calc-fields[data-service=shanghai]>.offer-list,#calc-fields[data-service=accompaniment]>.offer-list,.visa-picker .offer-list { grid-template-columns:1fr; gap:5px; }
  .offer-body,.visa-picker .offer-body { display:grid; grid-template-columns:13px minmax(0,1fr) auto; align-items:center; gap:2px 8px; min-height:48px; padding:8px 10px; }
  .offer-body::before { position:static; }
  .offer-name { font:500 15px/1.25 var(--sans); letter-spacing:0; }
  .offer-price,.offer-price.on-request { margin:0; padding:0; font-size:14px; }
  .offer-price.on-request { font-size:12px; }
  .visa-tools { gap:5px; margin-bottom:8px; }
  .visa-search,.visa-search input { width:100%; }
  .visa-filters { gap:0; }
  .visa-filters button { padding:6px 9px; font-size:13px; min-height:40px; }
}