:root { --ink:#153c39; --paper:#f5f1e8; --warm:#e5d4bf; --clay:#c96c4a; --leaf:#73946e; --line:rgba(21,60,57,.2); }
* { box-sizing:border-box; } html { scroll-behavior:smooth; } body { margin:0; background:var(--paper); color:var(--ink); font-family:"DM Sans",sans-serif; font-size:16px; } .announcement { display:flex; justify-content:center; align-items:center; gap:9px; background:var(--ink); color:#fff; padding:10px 20px; font:12px/1.2 "DM Mono",monospace; letter-spacing:.055em; text-align:center; } .announcement p { margin:0; } .pulse { width:7px; height:7px; border-radius:50%; background:#ddbd72; box-shadow:0 0 0 4px rgba(221,189,114,.18); }.site-header { height:82px; display:flex; align-items:center; justify-content:space-between; padding:0 5.5vw; border-bottom:1px solid var(--line); }.brand { color:var(--ink); text-decoration:none; display:flex; align-items:center; gap:9px; font:600 20px/1 "DM Sans",sans-serif; letter-spacing:-.07em; }.brand>span:last-child span { color:var(--clay); }.brand-mark { display:grid; place-items:center; width:29px; height:29px; color:var(--paper); background:var(--ink); border-radius:50%; font:italic 600 18px/1 "Playfair Display",serif; letter-spacing:0; }.nav { display:flex; align-items:center; gap:30px; }.nav a { color:var(--ink); text-decoration:none; font-size:14px; }.nav .nav-cta { border:1px solid var(--ink); padding:10px 14px; }.menu-toggle { display:none; border:0; background:none; padding:8px; }.hero { min-height:605px; position:relative; overflow:hidden; padding:10.5vw 8vw 78px; background:#e7dbc7; }.hero-copy { position:relative; z-index:2; max-width:640px; }.eyebrow,.section-label { margin:0 0 22px; font:12px/1.3 "DM Mono",monospace; letter-spacing:.08em; }.hero h1,.intro h2,.conditions h2,.about h2,.opening h2 { font:600 clamp(48px,7vw,98px)/.98 "Playfair Display",serif; letter-spacing:-.055em; margin:0; }.hero h1 em,.intro h2 em,.conditions h2 em,.about h2 em,.opening h2 em { font-weight:500; color:var(--clay); }.hero-text { max-width:455px; margin:30px 0; font-size:18px; line-height:1.55; }.hero-actions { display:flex; align-items:center; gap:25px; }.button { background:var(--ink); color:#fff; padding:15px 17px; text-decoration:none; font-size:14px; }.button span,.notify-form button span { margin-left:18px; font-size:18px; }.text-link { color:var(--ink); text-underline-offset:5px; font-size:14px; }.text-link span { margin-left:7px; }.hero-art { position:absolute; inset:0 0 0 51%; background:var(--warm); overflow:hidden; }.sun { width:min(35vw,510px); height:min(35vw,510px); position:absolute; border-radius:50%; background:#eebc69; right:-4vw; top:9vw; }.body-line { position:absolute; border:2px solid var(--ink); border-radius:48% 52% 44% 56%; opacity:.92; }.line-one { width:31vw; height:50vw; max-height:720px; top:3vw; left:11vw; transform:rotate(21deg); border-left-color:transparent; }.line-two { width:16vw; height:37vw; top:19vw; left:3vw; transform:rotate(-39deg); border-top-color:transparent; }.line-three { width:13vw; height:31vw; top:21vw; left:25vw; transform:rotate(32deg); border-right-color:transparent; }.hero-note { position:absolute; right:3.5vw; bottom:8vw; font:italic 500 26px/1.1 "Playfair Display",serif; transform:rotate(-8deg); }.hero-note span { color:var(--clay); }.hero-footer { position:absolute; left:8vw; bottom:26px; z-index:2; display:flex; gap:12px; align-items:center; font:10px "DM Mono",monospace; letter-spacing:.1em; }.divider { width:30px; height:1px; background:var(--ink); }.intro { display:grid; grid-template-columns:25% 1fr; gap:35px; padding:140px 8vw 126px; }.intro h2,.conditions h2,.about h2,.opening h2 { font-size:clamp(38px,5.1vw,72px); }.large-copy { max-width:650px; font-size:20px; line-height:1.65; margin:35px 0 0; }.method { background:var(--ink); color:#f9f5eb; padding:76px 8vw 88px; }.method-intro { display:flex; justify-content:space-between; align-items:flex-start; border-bottom:1px solid rgba(255,255,255,.25); padding-bottom:40px; }.method-intro p:last-child { margin:0; width:350px; line-height:1.6; }.method-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:35px; }.method article { padding-top:29px; }.number { display:block; margin-bottom:55px; color:#d5a36f; font:12px "DM Mono",monospace; }.method h3 { font:500 31px "Playfair Display",serif; margin:0 0 13px; }.method article p { max-width:270px; margin:0; line-height:1.6; color:#d9e2d5; }.conditions { padding:130px 8vw 118px; }.conditions-heading { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:58px; }.conditions-heading .section-label { width:25%; }.condition-list { list-style:none; padding:0; margin:0; border-top:1px solid var(--line); }.condition-list li { display:grid; grid-template-columns:85px 1fr 25px; align-items:center; min-height:75px; border-bottom:1px solid var(--line); font:500 clamp(20px,2.2vw,28px) "Playfair Display",serif; }.condition-list span { font:12px "DM Mono",monospace; }.condition-list i { font:18px "DM Sans",sans-serif; font-style:normal; }.disclaimer { color:#647371; font-size:12px; line-height:1.5; margin:25px 0 0; }.about { display:grid; grid-template-columns:1fr 1fr; background:#e0ccb3; }.about-image { position:relative; min-height:650px; overflow:hidden; }.about-image img { width:100%; height:100%; object-fit:cover; object-position:51% center; filter:saturate(.82) contrast(.96); }.image-tag { position:absolute; bottom:22px; left:22px; background:var(--paper); padding:10px 12px; font:10px "DM Mono",monospace; letter-spacing:.06em; }.about-copy { padding:100px 8vw 80px; }.about-copy>p:not(.section-label) { max-width:450px; font-size:17px; line-height:1.65; }.credential { display:flex; gap:13px; margin-top:34px; border-top:1px solid rgba(21,60,57,.3); padding-top:21px; }.credential span { display:grid; place-items:center; min-width:23px; height:23px; color:var(--paper); background:var(--ink); border-radius:50%; }.credential p { margin:0; font-size:13px; line-height:1.6; }.opening { text-align:center; padding:130px 24px; background:#d7e0d2; }.opening .section-label { margin-bottom:25px; }.opening>p:not(.section-label):not(.small-print) { max-width:490px; margin:28px auto; line-height:1.65; }.notify-form { max-width:505px; display:flex; margin:33px auto 0; border-bottom:1px solid var(--ink); }.notify-form input { flex:1; min-width:0; padding:14px 3px; background:transparent; border:0; outline:0; color:var(--ink); font:16px "DM Sans",sans-serif; }.notify-form input::placeholder { color:#70817d; }.notify-form button { border:0; background:transparent; color:var(--ink); padding:8px 3px; font:600 13px "DM Sans",sans-serif; cursor:pointer; }.form-message { min-height:20px; color:var(--ink); font-size:13px; }.small-print { color:#60726d; font-size:11px; } footer { min-height:160px; padding:40px 5.5vw; display:flex; align-items:center; justify-content:space-between; background:var(--ink); color:#eff0e5; } footer .brand { color:#fff; } footer .brand-mark { color:var(--ink); background:#e7dbc7; } footer p,footer>a:not(.brand) { margin:0; color:#dae1d7; font:12px/1.7 "DM Mono",monospace; text-decoration:none; }.sr-only { position:absolute; width:1px; height:1px; clip:rect(0,0,0,0); overflow:hidden; white-space:nowrap; }
@media (max-width:760px) { .site-header { height:68px; padding:0 24px; }.nav { display:none; position:absolute; z-index:10; top:108px; left:0; right:0; flex-direction:column; align-items:stretch; gap:0; padding:10px 24px 22px; background:var(--paper); border-bottom:1px solid var(--line); }.nav.open { display:flex; }.nav a { padding:14px 0; }.nav .nav-cta { padding:12px; text-align:center; margin-top:5px; }.menu-toggle { display:grid; gap:5px; }.menu-toggle span { display:block; width:23px; height:1px; background:var(--ink); }.hero { padding:76px 24px 80px; min-height:680px; }.hero-art { opacity:.44; left:25%; }.hero-copy { max-width:95%; }.hero h1 { font-size:58px; }.hero-text { font-size:16px; max-width:320px; }.hero-actions { align-items:flex-start; flex-direction:column; gap:20px; }.hero-footer { left:24px; }.hero-note { font-size:21px; }.intro,.about { display:block; }.intro { padding:84px 24px; }.intro .section-label { margin-bottom:30px; }.large-copy { font-size:17px; }.method { padding:65px 24px; }.method-intro { display:block; }.method-intro p:last-child { width:auto; }.method-grid { grid-template-columns:1fr; gap:0; }.method article { border-bottom:1px solid rgba(255,255,255,.2); padding:25px 0; }.method article:last-child { border:0; }.number { margin-bottom:22px; }.conditions { padding:82px 24px; }.conditions-heading { display:block; margin-bottom:38px; }.conditions-heading .section-label { width:auto; }.condition-list li { grid-template-columns:43px 1fr 20px; min-height:68px; font-size:20px; }.about-image { min-height:420px; }.about-copy { padding:80px 24px; }.opening { padding:85px 24px; }.opening h2 { font-size:47px; }.notify-form { flex-direction:column; border:0; gap:12px; }.notify-form input { width:100%; border-bottom:1px solid var(--ink); }.notify-form button { background:var(--ink); color:#fff; padding:14px; }.small-print { margin-top:20px; } footer { min-height:190px; padding:38px 24px; display:grid; gap:23px; align-items:start; } }

.booking { display:grid; grid-template-columns:minmax(300px,.86fr) minmax(400px,1.14fr); gap:8vw; padding:120px 8vw 130px; background:#f5f1e8; }.booking h2 { font:600 clamp(38px,5.1vw,72px)/.98 "Playfair Display",serif; letter-spacing:-.055em; margin:0; }.booking h2 em { font-weight:500; color:var(--clay); }.booking-heading>p:not(.section-label) { max-width:420px; margin:28px 0 0; line-height:1.65; }.booking-details { display:flex; flex-wrap:wrap; gap:9px; margin-top:35px; }.booking-details span { border:1px solid var(--line); padding:8px 9px; font:10px "DM Mono",monospace; letter-spacing:.04em; }.booking-form { display:grid; grid-template-columns:1fr 1fr; gap:27px 20px; align-content:start; padding:34px; background:#e7dbc7; }.field { display:flex; flex-direction:column; gap:9px; }.full-width { grid-column:1/-1; }.field label { font-size:13px; font-weight:600; }.field label span,.field small { color:#6f7770; font-weight:400; }.field small { font-size:11px; margin-top:-2px; }.field input,.field select,.field textarea { width:100%; border:0; border-bottom:1px solid rgba(21,60,57,.55); border-radius:0; outline:0; padding:9px 2px; background:transparent; color:var(--ink); font:15px "DM Sans",sans-serif; }.field select { cursor:pointer; }.field textarea { line-height:1.5; resize:vertical; }.field input:focus,.field select:focus,.field textarea:focus { border-bottom:2px solid var(--clay); }.booking-button { border:0; background:var(--ink); color:#fff; padding:16px; margin-top:4px; font:600 14px "DM Sans",sans-serif; cursor:pointer; }.booking-button span { margin-left:18px; font-size:18px; }.booking-button:hover { background:#20534e; }.booking-message { min-height:20px; margin:-13px 0 -12px; color:var(--ink); font-size:13px; }.booking-note { margin:0; color:#5f6a65; font-size:11px; line-height:1.5; }
.thai-solution { display:grid; grid-template-columns:.86fr 1.14fr; align-items:center; gap:8vw; padding:120px 8vw; background:#d7e0d2; }.thai-solution h2 { font:600 clamp(38px,5.1vw,72px)/.98 "Playfair Display",serif; letter-spacing:-.055em; margin:0; }.thai-solution h2 em { color:var(--clay); font-weight:500; }.solution-copy>p:not(.section-label) { max-width:470px; margin:28px 0 0; line-height:1.65; }.solution-copy .solution-small { max-width:390px; padding-top:22px; border-top:1px solid rgba(21,60,57,.3); font-size:13px; }.solution-images { position:relative; min-height:510px; padding:0 6vw 5vw 0; }.solution-main-image { position:relative; z-index:1; margin:0; max-width:510px; box-shadow:15px 18px 0 rgba(21,60,57,.14); }.solution-main-image img { display:block; width:100%; aspect-ratio:1/1; object-fit:cover; }.solution-main-image figcaption { margin-top:13px; max-width:390px; font-size:12px; line-height:1.5; }.solution-detail-image { position:absolute; z-index:2; right:0; bottom:0; width:min(37%,220px); margin:0; background:var(--ink); border:8px solid var(--paper); box-shadow:9px 10px 0 rgba(21,60,57,.15); }.solution-detail-image img { display:block; width:100%; aspect-ratio:.73/1; object-fit:cover; object-position:center top; }.solution-detail-image figcaption { padding:9px 11px 10px; color:#fff; font:10px/1.35 "DM Mono",monospace; letter-spacing:.04em; }
@media (max-width:760px) { .booking { display:block; padding:82px 24px; }.booking-form { margin-top:42px; padding:25px; grid-template-columns:1fr; gap:25px; }.booking-form .full-width { grid-column:auto; } }
@media (max-width:760px) { .thai-solution { display:block; padding:82px 24px; }.solution-images { min-height:0; margin-top:43px; padding:0 13vw 10vw 0; }.solution-main-image figcaption { font-size:11px; }.solution-detail-image { width:39%; border-width:6px; } }

.treatments { padding:125px 8vw 115px; background:#f5f1e8; }.treatments-heading { display:grid; grid-template-columns:25% 1fr; gap:35px; }.treatments h2 { margin:0; font:600 clamp(38px,5.1vw,72px)/.98 "Playfair Display",serif; letter-spacing:-.055em; }.treatments h2 em { color:var(--clay); font-weight:500; }.treatments-heading>div>p { max-width:525px; margin:27px 0 0; line-height:1.65; }.treatment-list { margin-top:65px; border-top:1px solid var(--line); }.treatment-card { display:grid; grid-template-columns:90px minmax(215px,.85fr) 1.15fr; gap:25px; align-items:start; padding:30px 0 32px; border-bottom:1px solid var(--line); }.treatment-card .number { margin:5px 0 0; color:var(--clay); }.treatment-type { margin:0 0 9px; font:10px "DM Mono",monospace; letter-spacing:.07em; }.treatment-card h3 { margin:0; font:500 clamp(25px,2.3vw,33px)/1.08 "Playfair Display",serif; letter-spacing:-.035em; }.treatment-card>p { max-width:440px; margin:0; line-height:1.6; }.treatments-note { margin:23px 0 0; color:#647371; font-size:12px; line-height:1.5; }
@media (max-width:760px) { .treatments { padding:82px 24px; }.treatments-heading { display:block; }.treatments-heading .section-label { margin-bottom:30px; }.treatment-list { margin-top:43px; }.treatment-card { grid-template-columns:42px 1fr; gap:14px; padding:27px 0; }.treatment-card>p { grid-column:2; font-size:14px; }.treatment-type { font-size:9px; }.treatment-card h3 { font-size:26px; } }

.programs { padding:120px 8vw 110px; background:var(--ink); color:#f7f3e9; }.programs-heading { display:grid; grid-template-columns:25% 1fr; gap:35px; }.programs-heading .section-label { color:#d4e0ce; }.programs h2 { margin:0; font:600 clamp(38px,5.1vw,72px)/.98 "Playfair Display",serif; letter-spacing:-.055em; }.programs h2 em { color:#d5a36f; font-weight:500; }.programs-heading>div>p { max-width:520px; margin:28px 0 0; color:#d9e2d5; line-height:1.65; }.program-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin-top:66px; border-top:1px solid rgba(255,255,255,.27); }.program-card { position:relative; min-height:310px; padding:30px 32px 30px 0; border-right:1px solid rgba(255,255,255,.27); }.program-card:not(:first-child) { padding-left:32px; }.program-card:last-child { border-right:0; padding-right:0; }.program-number { display:block; margin-bottom:44px; color:#d5a36f; font:12px "DM Mono",monospace; }.program-time { margin:0 0 10px; color:#d4e0ce; font:10px "DM Mono",monospace; letter-spacing:.08em; }.program-card h3 { margin:0; font:500 clamp(28px,2.55vw,39px)/1.05 "Playfair Display",serif; letter-spacing:-.04em; }.program-card>p:last-of-type { max-width:290px; margin:21px 0 0; color:#d9e2d5; line-height:1.6; }.featured-program { background:rgba(255,255,255,.06); }.popular-label { position:absolute; top:30px; right:25px; color:#d5a36f; font:9px "DM Mono",monospace; letter-spacing:.07em; }.programs-note { margin:34px 0 0; color:#d4e0ce; font-size:12px; }.field select:disabled { color:#71817b; cursor:not-allowed; }
@media (max-width:760px) { .programs { padding:82px 24px; }.programs-heading { display:block; }.programs-heading .section-label { margin-bottom:30px; }.program-grid { grid-template-columns:1fr; margin-top:43px; }.program-card,.program-card:not(:first-child),.program-card:last-child { min-height:0; padding:27px 0; border-right:0; border-bottom:1px solid rgba(255,255,255,.25); }.program-card:last-child { border-bottom:0; }.program-number { margin-bottom:23px; }.featured-program { padding-left:18px !important; padding-right:18px !important; }.popular-label { top:28px; right:18px; }.program-card h3 { font-size:32px; } }

.hero-note { bottom:285px; }.hero-therapist { position:absolute; z-index:3; right:6vw; bottom:62px; display:flex; align-items:flex-end; gap:13px; }.therapist-portrait { width:145px; height:177px; overflow:hidden; border:7px solid var(--paper); background:#d2b28d; box-shadow:10px 11px 0 rgba(21,60,57,.16); }.therapist-portrait img { display:block; width:260%; max-width:none; height:auto; transform:translate(-38%,-20%); }.therapist-label { padding-bottom:6px; color:var(--ink); text-shadow:0 1px 0 rgba(245,241,232,.45); }.therapist-label span { display:block; margin-bottom:7px; font:9px "DM Mono",monospace; letter-spacing:.08em; }.therapist-label strong { display:block; font:600 18px/1.05 "Playfair Display",serif; letter-spacing:-.02em; }
@media (max-width:760px) { .hero-note { display:none; }.hero-therapist { right:24px; bottom:70px; gap:9px; }.therapist-portrait { width:105px; height:130px; border-width:5px; }.therapist-label { padding-bottom:2px; }.therapist-label span { max-width:100px; font-size:8px; }.therapist-label strong { font-size:14px; } }

.header-tools { display:flex; align-items:center; gap:21px; }.language-switch { display:flex; align-items:center; gap:7px; color:#8b9690; font:12px "DM Mono",monospace; }.language-button { border:0; padding:4px 0; color:#82908a; background:transparent; font:12px "DM Mono",monospace; cursor:pointer; }.language-button.active { color:var(--ink); font-weight:500; }.language-button:hover { color:var(--clay); }
@media (max-width:760px) { .header-tools { gap:14px; }.language-switch { gap:6px; }.language-button { font-size:11px; } }

.site-header { height:88px; }.nav { gap:8px; }.nav a { padding:9px 10px; color:rgba(21,60,57,.72); font:11px "DM Mono",monospace; letter-spacing:.025em; }.nav a:hover { color:var(--ink); }.nav .nav-cta { margin-left:9px; border:1px solid var(--ink); padding:11px 14px; color:#fff; background:var(--ink); font-family:"DM Sans",sans-serif; font-size:13px; letter-spacing:0; }.nav .nav-cta:hover { background:#20534e; color:#fff; }.header-tools { gap:17px; }
.brand-logo { display:block; overflow:hidden; width:142px; height:64px; background:transparent; border:0; }.brand-logo img { display:block; width:100%; height:100%; object-fit:cover; object-position:center 44%; }.brand-logo .brand-mark { display:none; } footer .brand-logo { width:162px; height:74px; }
@media (max-width:760px) { .site-header { height:72px; }.nav { top:112px; }.nav a { padding:14px 0; font:14px "DM Sans",sans-serif; letter-spacing:0; }.nav .nav-cta { padding:12px; color:#fff; font-size:14px; }.brand-logo { width:120px; height:55px; } footer .brand-logo { width:150px; height:68px; } }

.opening-offer { display:flex; align-items:baseline; gap:14px; margin:38px 0 -25px 25%; color:#f7f3e9; }.opening-offer span { color:#d5a36f; font:10px "DM Mono",monospace; letter-spacing:.08em; }.opening-offer p { margin:0; font:500 20px "Playfair Display",serif; }.program-card { min-height:445px; }.price-list { margin:30px 0 0; border-top:1px solid rgba(255,255,255,.22); }.price-list div { display:flex; justify-content:space-between; gap:12px; padding:10px 0; border-bottom:1px solid rgba(255,255,255,.18); }.price-list dt { color:#d9e2d5; font-size:13px; }.price-list dd { margin:0; font:13px "DM Mono",monospace; }.price-list s { color:#aab9ad; text-decoration-thickness:1px; }.price-list strong { margin-left:5px; color:#f6d58d; font-weight:500; }.booking-price { display:flex; align-items:baseline; justify-content:space-between; gap:16px; min-height:48px; padding:13px 15px; background:rgba(21,60,57,.1); }.booking-price:empty { display:none; }.booking-price .price-label { margin:0; color:#5f6d67; font:10px "DM Mono",monospace; letter-spacing:.06em; }.booking-price .price-value { margin:0; color:var(--ink); font:500 24px "Playfair Display",serif; }.booking-price s { margin-right:7px; color:#6b7771; font:12px "DM Mono",monospace; }.booking-price .price-saving { margin:0; color:#5f6d67; font-size:11px; text-align:right; }
@media (max-width:760px) { .opening-offer { display:block; margin:32px 0 -4px; }.opening-offer p { margin-top:8px; font-size:19px; }.program-card { min-height:0; }.price-list { max-width:310px; }.booking-price { display:block; }.booking-price .price-saving { margin-top:4px; text-align:left; } }

.no-oil-note { display:flex; align-items:baseline; gap:12px; margin-top:28px; padding-top:17px; border-top:1px solid rgba(21,60,57,.3); }.no-oil-note span { color:var(--clay); font:10px "DM Mono",monospace; letter-spacing:.08em; }.no-oil-note p { margin:0; font-size:13px; line-height:1.5; }.benja { padding:120px 8vw; background:#e7dbc7; }.benja-heading { display:grid; grid-template-columns:25% 1fr; gap:35px; }.benja h2 { margin:0; font:600 clamp(38px,5.1vw,72px)/.98 "Playfair Display",serif; letter-spacing:-.055em; }.benja h2 em { color:var(--clay); font-weight:500; }.benja-heading>div>p { max-width:570px; margin:27px 0 0; line-height:1.65; }.benja-grid { display:grid; grid-template-columns:repeat(5,1fr); margin-top:65px; border-top:1px solid var(--line); }.benja-grid article { min-height:267px; padding:28px 20px 20px 0; border-right:1px solid var(--line); }.benja-grid article:not(:first-child) { padding-left:20px; }.benja-grid article:last-child { padding-right:0; border-right:0; }.benja-grid span { display:block; margin-bottom:43px; color:var(--clay); font:12px "DM Mono",monospace; }.benja-grid h3 { margin:0; font:500 25px/1.1 "Playfair Display",serif; letter-spacing:-.025em; }.benja-grid p { margin:14px 0 0; color:#415b56; font-size:13px; line-height:1.6; }.benja-note { margin:29px 0 0; color:#647371; font-size:12px; line-height:1.5; }
@media (max-width:760px) { .no-oil-note { align-items:flex-start; flex-direction:column; gap:6px; }.benja { padding:82px 24px; }.benja-heading { display:block; }.benja-heading .section-label { margin-bottom:30px; }.benja-grid { grid-template-columns:1fr; margin-top:44px; }.benja-grid article,.benja-grid article:not(:first-child),.benja-grid article:last-child { min-height:0; padding:25px 0; border-right:0; border-bottom:1px solid var(--line); }.benja-grid article:last-child { border-bottom:0; }.benja-grid span { margin-bottom:17px; }.benja-grid h3 { font-size:29px; }.benja-grid p { max-width:410px; } }

/* Keep all image descriptions beside or below their photographs, never over them. */
.about-copy .image-tag { position:static; display:inline-block; margin:-7px 0 30px; background:transparent; border:1px solid rgba(21,60,57,.35); padding:8px 10px; color:var(--ink); font:10px "DM Mono",monospace; letter-spacing:.06em; }
.solution-images { display:grid; grid-template-columns:minmax(0,1fr) minmax(145px,.42fr); gap:22px; align-items:end; min-height:0; padding:0; }
.solution-main-image { max-width:none; }
.solution-detail-image { position:static; width:auto; border:6px solid var(--paper); }
.solution-detail-image figcaption { min-height:48px; }
@media (max-width:760px) { .about-copy .image-tag { margin:-8px 0 27px; }.solution-images { grid-template-columns:minmax(0,1fr) minmax(112px,.58fr); gap:13px; padding:0; }.solution-detail-image { width:auto; border-width:5px; }.solution-detail-image figcaption { min-height:0; padding:8px 9px 9px; } }

/* Give booking selects a reserved space for the arrow, so their text stays clear. */
.booking-message.is-pending { margin-top:-5px; padding:14px 16px; border-left:3px solid var(--clay); background:rgba(255,255,255,.42); line-height:1.55; }
.booking-form .field select { min-width:0; min-height:42px; padding:10px 35px 10px 3px; appearance:none; -webkit-appearance:none; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; background-color:transparent; background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%); background-repeat:no-repeat; background-position:calc(100% - 15px) calc(50% - 2px),calc(100% - 10px) calc(50% - 2px); background-size:5px 5px,5px 5px; }
.booking-form .field select:disabled { opacity:1; color:#566862; background-image:linear-gradient(45deg,transparent 50%,#71817b 50%),linear-gradient(135deg,#71817b 50%,transparent 50%); }
.booking-form .field select option { color:var(--ink); background:var(--paper); }

.solution-focus { padding:118px 8vw; background:var(--paper); }
.solution-focus-heading { display:grid; grid-template-columns:25% 1fr; gap:35px; }
.solution-focus-heading h2 { max-width:690px; margin:0; font:600 clamp(38px,5.1vw,72px)/.98 "Playfair Display",serif; letter-spacing:-.055em; }
.solution-focus-heading h2 em { color:var(--clay); font-weight:500; }
.solution-focus-heading > div > p { max-width:620px; margin:27px 0 0; line-height:1.65; }
.solution-focus-content { display:grid; grid-template-columns:25% 1fr; gap:35px; margin-top:64px; padding-top:27px; border-top:1px solid var(--line); }
.solution-focus-intro { max-width:190px; margin:0; color:#4f625d; font-size:14px; line-height:1.6; }
.solution-focus-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:35px; margin:0; padding:0; list-style:none; counter-reset:solution-focus; }
.solution-focus-list li { display:flex; align-items:baseline; gap:14px; min-height:55px; padding:14px 0; border-bottom:1px solid var(--line); font:500 20px/1.2 "Playfair Display",serif; letter-spacing:-.02em; }
.solution-focus-list li::before { counter-increment:solution-focus; content:"0" counter(solution-focus); flex:0 0 auto; color:var(--clay); font:10px "DM Mono",monospace; letter-spacing:.06em; }
.solution-focus-note { max-width:760px; margin:30px 0 0 25%; color:#5a6a65; font-size:12px; line-height:1.65; }
.solution-focus-note strong { color:var(--ink); }
@media (max-width:760px) { .solution-focus { padding:82px 24px; }.solution-focus-heading,.solution-focus-content { display:block; }.solution-focus-heading .section-label { margin-bottom:30px; }.solution-focus-heading h2 { font-size:43px; }.solution-focus-content { margin-top:43px; padding-top:22px; }.solution-focus-intro { max-width:340px; margin-bottom:19px; }.solution-focus-list { grid-template-columns:1fr; }.solution-focus-list li { min-height:0; padding:16px 0; font-size:22px; }.solution-focus-note { margin:27px 0 0; } }

.contact-email { display:inline-block; margin-top:21px; color:var(--ink); font:500 13px "DM Mono",monospace; text-decoration:none; border-bottom:1px solid var(--ink); padding-bottom:3px; }.contact-email:hover { color:var(--clay); border-color:var(--clay); }
