/* SAO PHU QUOC - UI v2
   Art direction: tasteskill "name as a monument" (brand palette + type kept).
   Rules: one ground, one ink, one accent; flat surfaces separated by tone; no gradients, shadows at rest, hairlines,
   emoji, eyebrows or pill badges; headlines two lines or fewer; one pair of equal margins; motion = transform/opacity. */

:root{
  --ground:#F3F3F0; --tone:#E5E5E0; --ink:#0D172C; --muted:#434E66;
  --accent:#C9A96E; --accent-hover:#BE9E62; --on-accent:#0D172C;
  --field:#0F1A33; --field-ink:#F3F3F0; --field-muted:#B7BFD0;
  --margin:clamp(16px,2.2vw,32px); --gap:clamp(12px,1.4vw,24px);
  --sec:clamp(72px,11vw,200px);
  --ease-out:cubic-bezier(.23,1,.32,1); --ease-in-out:cubic-bezier(.77,0,.175,1);
  --serif:'Playfair Display',Georgia,'Times New Roman',serif;
  --sans:'Inter','Segoe UI',system-ui,-apple-system,Roboto,Arial,sans-serif;
  --measure:62ch;
  --fs-s:.875rem; --fs-b:1.0625rem; --fs-l:1.25rem; --fs-m:1.5rem;
}
html[lang^="zh"]{--sans:'Inter','PingFang SC','Microsoft YaHei','Noto Sans SC',system-ui,sans-serif;--serif:var(--sans)}
html[lang^="ru"]{--serif:'Playfair Display','Times New Roman',serif}
html[lang^="ar"]{--sans:'Noto Sans Arabic','Inter',system-ui,Arial,sans-serif;--serif:var(--sans)}
html[lang^="hi"]{--sans:'Noto Sans Devanagari','Inter',system-ui,sans-serif;--serif:var(--sans)}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body.u2{margin:0;background:var(--ground);color:var(--ink);font:400 17px/1.6 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
body.u2 img{max-width:100%;display:block}
:where(body.u2) a{color:inherit}
body.u2 :focus-visible{outline:3px solid var(--ink);outline-offset:3px}
body.u2 .u2-field :focus-visible,body.u2 .u2-cta :focus-visible{outline-color:var(--field-ink)}
.u2-skip{position:absolute;inset-inline-start:var(--margin);top:-80px;background:var(--ink);color:var(--ground);padding:12px 16px;z-index:100;text-decoration:none}
.u2-skip:focus{top:12px}
.u2-wrap{padding-inline:var(--margin)}
.u2-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap)}

/* ---- type: five steps (small, body, lead, section heading, monument) ---- */
.u2-small{font-size:.875rem;line-height:1.5}
.u2-lead{font-size:var(--fs-l);line-height:1.5;max-width:36ch;margin:0}
.u2-h2,body.u2 h2.u2-h2{font:700 clamp(2.1rem,4.8vw,4.4rem)/1.02 var(--serif);letter-spacing:-.025em;margin:0;text-wrap:balance;max-width:16ch}
html[lang^="zh"] .u2-h2,html[lang^="ar"] .u2-h2,html[lang^="hi"] .u2-h2{letter-spacing:0;line-height:1.15}
body.u2 h3{font:700 var(--fs-m)/1.25 var(--serif);letter-spacing:-.01em;margin:0}
body.u2 p{margin:0 0 1em}
.u2-measure{max-width:var(--measure)}
.u2-muted{color:var(--muted)}

/* ---- buttons: flat, one fill, square ---- */
.u2-btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:14px 26px;background:var(--accent);color:var(--on-accent);font:700 var(--fs-b)/1.2 var(--sans);text-decoration:none;border:0;border-radius:0;cursor:pointer;transition:transform 160ms var(--ease-out),background-color 160ms ease;-webkit-tap-highlight-color:transparent}
.u2-btn:active{transform:scale(.97)}
.u2-btn-ink{background:var(--ink);color:var(--ground)}
.u2-btn-sm{min-height:44px;padding:10px 18px;font-size:var(--fs-b)}
.u2-link{font-weight:600;text-decoration:underline;text-underline-offset:.22em;text-decoration-thickness:2px}
@media (hover:hover) and (pointer:fine){
  .u2-btn:hover{background:var(--accent-hover)}.u2-btn-ink:hover{background:#1b2a4a}
  .u2-link:hover{text-decoration-color:var(--accent)}
}

/* ---- header ---- */
.u2-top{position:relative;z-index:20}
.u2-top-in{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px var(--margin);min-height:72px}
.u2-brand{display:flex;align-items:center;gap:10px;text-decoration:none;font:700 var(--fs-b)/1 var(--sans);letter-spacing:.01em}
.u2-brand svg{width:30px;height:30px;flex:none}
.u2-nav{display:flex;gap:clamp(14px,2vw,32px);align-items:center}
.u2-nav a{text-decoration:none;font-weight:500;font-size:var(--fs-b);padding:10px 0}
.u2-nav a[aria-current="page"]{font-weight:700;text-decoration:underline;text-underline-offset:.35em;text-decoration-thickness:2px}
.u2-top-act{display:flex;align-items:center;gap:14px}
.u2-menu-btn{display:none;background:none;border:0;font:700 var(--fs-b) var(--sans);color:inherit;padding:10px 4px;cursor:pointer;min-height:44px}
.u2-lang{position:relative}
.u2-lang summary{list-style:none;cursor:pointer;font-weight:600;font-size:var(--fs-b);padding:10px 4px;min-height:44px;display:flex;align-items:center}
.u2-lang summary::-webkit-details-marker{display:none}
.u2-lang-list{position:absolute;inset-inline-end:0;top:100%;background:var(--tone);color:var(--ink);min-width:190px;padding:8px;z-index:30}
.u2-lang-list a{display:block;padding:11px 12px;text-decoration:none;font-size:var(--fs-b)}
.u2-lang-list a[aria-current="true"]{font-weight:700;background:var(--ground)}
@media (hover:hover){.u2-lang-list a:hover{background:var(--ground)}}
.u2-sheet{position:fixed;inset:0;z-index:50;background:var(--field);color:var(--field-ink);display:none;flex-direction:column;padding:18px var(--margin) 28px;overflow:auto}
.u2-sheet.open{display:flex}
.u2-sheet-top{display:flex;justify-content:space-between;align-items:center;min-height:44px}
.u2-sheet nav{display:flex;flex-direction:column;margin:28px 0}
.u2-sheet nav a{font:700 clamp(1.9rem,8vw,2.6rem)/1.15 var(--serif);text-decoration:none;padding:9px 0}
.u2-sheet .u2-sheet-lang{display:flex;gap:6px 18px;flex-wrap:wrap;margin-top:auto}
.u2-sheet .u2-sheet-lang a{text-decoration:none;font-size:var(--fs-b);padding:8px 0}
.u2-sheet .u2-sheet-lang a[aria-current="true"]{font-weight:700;text-decoration:underline;text-underline-offset:.3em}
@media (max-width:980px){
  .u2-nav{display:none}.u2-menu-btn{display:inline-flex;align-items:center}
  .u2-top-act .u2-btn{display:none}
  .u2-top-act .u2-lang{display:none}
}

/* ---- hero: the name as a monument ---- */
.u2-hero{position:relative;overflow:hidden;padding-top:clamp(8px,2vw,24px);display:flex;flex-direction:column}
.u2-hero-intro{padding-inline:var(--margin);padding-top:clamp(12px,3vw,40px);max-width:calc(36ch + var(--margin) * 2)}
.u2-hero-act{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;margin-top:28px}
.u2-hero-act .u2-btn,.u2-hero-act .u2-link{font-size:var(--fs-l)}
.u2-sun{position:absolute;inset-block-start:clamp(24px,4.4vw,64px);inset-inline-end:var(--margin);text-align:end}
.u2-sun b{display:block;font:700 clamp(2.1rem,4.8vw,4.4rem)/1.05 var(--serif);letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin:6px 0 10px}
.u2-vh{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.u2-mono{display:block;margin:clamp(24px,5vw,72px) 0 0;padding-inline:var(--margin);font:900 15.5vw/.82 var(--serif);letter-spacing:-.045em;white-space:nowrap;text-transform:uppercase;transform-origin:left bottom;will-change:transform}
html[lang^="zh"] .u2-mono,html[lang^="ar"] .u2-mono,html[lang^="hi"] .u2-mono{font-weight:800;letter-spacing:0;line-height:1}
.u2-hero-pic{margin:calc(var(--margin) * .8) var(--margin) 0;position:relative}
.u2-hero-pic img{width:100%;height:clamp(280px,56vh,640px);object-fit:cover;object-position:50% 60%}
@media (max-width:760px){
  .u2-sun{position:static;text-align:start;padding:28px var(--margin) 0}
  .u2-hero-pic img{height:clamp(240px,46vh,420px)}
}

/* ---- sections ---- */
.u2-sec{padding-block:var(--sec)}
.u2-sec-tight{padding-block:calc(var(--sec) * .6)}
.u2-field{background:var(--field);color:var(--field-ink)}
.u2-field .u2-muted{color:var(--field-muted)}
.u2-tone{background:var(--tone)}
.u2-gap{height:max(150px,calc(var(--sec) * 1.2))}

/* features: one-size name columns */
.u2-idx-head{grid-column:1/-1;margin:0 0 clamp(40px,7vw,110px);font:700 var(--fs-m)/1.2 var(--serif);letter-spacing:-.01em}
.u2-idx .u2-col{grid-column:span 4;font-size:var(--fs-b);line-height:1.3;min-width:0}
.u2-idx .u2-col h3{font:700 var(--fs-b)/1.3 var(--sans);letter-spacing:0;margin-bottom:18px}
.u2-idx ul{list-style:none;margin:0 0 22px;padding:0}
.u2-idx li{padding:3px 0}
.u2-idx li a{text-decoration:none}
.u2-idx .u2-sum{color:var(--muted);max-width:30ch}
@media (hover:hover) and (pointer:fine){.u2-idx li a{transition:color 160ms ease}.u2-idx li a:hover{text-decoration:underline;text-underline-offset:.25em;text-decoration-thickness:2px}}
@media (max-width:860px){.u2-idx .u2-col{grid-column:span 6;margin-bottom:40px}}
@media (max-width:600px){.u2-idx .u2-col{grid-column:1/-1}}

/* showcase: square plate + spare text */
.u2-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap);align-items:stretch;min-height:min(88svh,820px)}
.u2-split-pic{padding:0 0 0 var(--margin);display:flex;align-items:center}
[dir=rtl] .u2-split-pic{padding:0 var(--margin) 0 0}
.u2-split-pic img{width:100%;aspect-ratio:1/1;object-fit:cover}
.u2-split-txt{display:flex;flex-direction:column;justify-content:space-between;gap:36px;padding:clamp(8px,2vw,32px) var(--margin) 0 clamp(8px,2vw,32px)}
[dir=rtl] .u2-split-txt{padding:clamp(8px,2vw,32px) clamp(8px,2vw,32px) 0 var(--margin)}
.u2-split-txt .u2-h2{max-width:11ch}
.u2-big{font:700 clamp(3.4rem,8vw,7.2rem)/.95 var(--serif);letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.u2-cells{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:auto}
.u2-cells a{display:flex;align-items:center;justify-content:center;min-height:72px;padding:14px;text-decoration:none;font-weight:700;font-size:var(--fs-b);text-align:center;transition:transform 160ms var(--ease-out),background-color 160ms ease}
.u2-cells a:active{transform:scale(.98)}
.u2-cells a:first-child{background:var(--accent);color:var(--on-accent)}
.u2-cells a:last-child{background:var(--tone);color:var(--ink)}
.u2-field .u2-cells a:last-child{background:#1c2a4b;color:var(--field-ink)}
@media (max-width:860px){
  .u2-split{grid-template-columns:1fr;min-height:0}
  .u2-split-pic,[dir=rtl] .u2-split-pic{padding:0 var(--margin)}
  .u2-split-txt,[dir=rtl] .u2-split-txt{padding:36px var(--margin) 0}
  .u2-cells{grid-template-columns:1fr}
}

/* table pushed right */
.u2-tbl-head{padding-inline:var(--margin)}
.u2-tbl-head .u2-h2{max-width:none;text-indent:3vw}
.u2-tbl-wrap{margin-top:clamp(48px,6vw,96px);align-items:end}
.u2-tbl-pic{grid-column:1/span 4;align-self:end}
.u2-tbl-pic img{width:100%;aspect-ratio:4/5;object-fit:cover}
.u2-tbl-name{grid-column:7/span 1;font-size:var(--fs-s);color:var(--muted);align-self:start;padding-top:6px}
.u2-tbl{grid-column:8/-1;display:grid;row-gap:26px}
.u2-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 20px;align-items:baseline;text-decoration:none;color:inherit;font-size:var(--fs-b)}
.u2-row b{font-weight:700}
.u2-row .u2-what{grid-column:1;color:var(--muted);font-size:var(--fs-s);max-width:36ch}
.u2-row .u2-price{grid-column:2;grid-row:1;font-weight:700;font-variant-numeric:tabular-nums;text-align:end;white-space:nowrap}
.u2-row.u2-gap-top{margin-top:18px}
@media (hover:hover) and (pointer:fine){.u2-row{transition:transform 200ms var(--ease-out)}.u2-row:hover{transform:translateX(6px)}[dir=rtl] .u2-row:hover{transform:translateX(-6px)}}
@media (max-width:980px){
  .u2-tbl-head .u2-h2{text-indent:0}
  .u2-tbl-wrap{display:flex;flex-direction:column}.u2-tbl-pic{order:3;margin:56px 0 0 auto;width:60%}.u2-tbl-name{display:none}
  [dir=rtl] .u2-tbl-pic{margin:56px auto 0 0}
}

/* gallery: staggered pairs */
.u2-gal{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);padding-inline:var(--margin);row-gap:clamp(40px,12vh,160px)}
.u2-gal figure{margin:0}
.u2-gal img{width:100%;object-fit:cover}
.u2-gal figcaption{font-size:var(--fs-b);color:var(--muted);margin-top:10px;max-width:46ch}
.u2-g1{grid-column:1/span 4}.u2-g1 img{aspect-ratio:3/4}
.u2-g2{grid-column:7/span 6;margin-top:clamp(40px,30vh,320px)}.u2-g2 img{aspect-ratio:5/4}
.u2-g3{grid-column:6/span 6}.u2-g3 img{aspect-ratio:3/2}
.u2-g4{grid-column:2/span 3;margin-top:clamp(40px,24vh,260px)}.u2-g4 img{aspect-ratio:4/5}
.u2-g5{grid-column:1/span 6}.u2-g5 img{aspect-ratio:4/3}
.u2-g6{grid-column:8/span 4;margin-top:clamp(40px,20vh,240px)}.u2-g6 img{aspect-ratio:3/4}
@media (max-width:760px){
  .u2-gal{row-gap:56px}
  .u2-g1,.u2-g2,.u2-g3,.u2-g4,.u2-g5,.u2-g6{grid-column:1/-1;margin-top:0}
  .u2-g1{width:72%}.u2-g2{width:86%;margin-inline-start:auto}.u2-g3{width:100%}.u2-g4{width:62%}.u2-g5{width:86%;margin-inline-start:auto}.u2-g6{width:70%}
}

/* faq */
.u2-faq-head{}
.u2-faq-head .u2-h2{max-width:none}
.u2-faq{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);padding-inline:var(--margin);display:grid}
.u2-faq-list{grid-column:5/-1;display:grid;row-gap:14px}
.u2-faq details{padding:18px 24px;margin-inline:-24px;transition:background-color 200ms ease}
.u2-faq details[open]{background:var(--tone)}
.u2-faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:20px;align-items:center;font:500 var(--fs-m)/1.3 var(--sans);min-height:44px}
.u2-faq summary::-webkit-details-marker{display:none}
.u2-faq summary::after{content:"";width:12px;height:12px;border-inline-end:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translate(-3px,-3px);flex:none;transition:transform 200ms var(--ease-out)}
.u2-faq details[open] summary::after{transform:rotate(-135deg) translate(-3px,-3px)}
.u2-faq details p{margin:16px 0 0;max-width:48ch;font-size:var(--fs-b)}
@media (max-width:860px){.u2-faq-list{grid-column:1/-1}.u2-faq details{margin-inline:calc(var(--margin) * -1);padding-inline:var(--margin)}}

/* cta: one word is the button */
.u2-cta{display:block;position:relative;background:var(--accent);color:var(--on-accent);text-decoration:none;min-height:clamp(260px,60svh,620px);overflow:hidden;transition:background-color 220ms ease,color 220ms ease}
.u2-cta-s{position:absolute;inset-block-start:24px;inset-inline-start:var(--margin);max-width:min(30ch,calc(100% - var(--margin) * 2 - 72px));font-size:var(--fs-l);line-height:1.35;font-weight:500}
.u2-cta-a{position:absolute;inset-block-start:24px;inset-inline-end:var(--margin);width:48px;height:48px}
.u2-cta-w{position:absolute;inset-inline:var(--margin);bottom:24px;display:block;font:900 24vw/.8 var(--serif);letter-spacing:-.05em;white-space:nowrap;text-transform:uppercase}
html[lang^="zh"] .u2-cta-w,html[lang^="ar"] .u2-cta-w,html[lang^="hi"] .u2-cta-w{font-weight:800;letter-spacing:0;line-height:1}
@media (hover:hover) and (pointer:fine){.u2-cta:hover{background:var(--ink);color:var(--accent)}}
.u2-cta:focus-visible{background:var(--ink);color:var(--accent);outline-offset:-6px}

/* footer: the name first */
.u2-foot{background:var(--field);color:var(--field-ink);overflow:hidden;padding-top:clamp(40px,6vw,88px)}
.u2-foot-name{display:block;padding-inline:var(--margin);font:900 14vw/.82 var(--serif);letter-spacing:-.045em;white-space:nowrap;text-transform:uppercase;margin:0;text-decoration:none;color:inherit}
.u2-foot-body{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);row-gap:48px;padding:clamp(48px,7vw,96px) var(--margin) 0}
.u2-places{grid-column:1/span 5;display:grid;gap:6px;align-content:start}
.u2-places a{font:700 var(--fs-m)/1.25 var(--serif);color:var(--accent);text-decoration:none;letter-spacing:-.01em;overflow-wrap:anywhere}
.u2-places p{margin:12px 0 0;color:var(--field-muted);font-size:var(--fs-b)}
.u2-flinks{grid-column:7/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap);align-content:start}
.u2-flinks div{display:grid;gap:4px;align-content:start}
.u2-flinks b{font-size:var(--fs-s);margin-bottom:6px}
.u2-flinks a{font-size:var(--fs-s);text-decoration:none;color:var(--field-muted);padding:4px 0;min-height:30px;display:inline-flex}
@media (hover:hover){.u2-flinks a:hover{color:var(--field-ink)}.u2-places a:hover{text-decoration:underline;text-underline-offset:.2em}}
.u2-foot-end{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:clamp(64px,8vw,120px) var(--margin) 28px;font-size:var(--fs-b);color:var(--field-muted)}
.u2-foot-end a{color:inherit}
.u2-credit{padding:0 var(--margin) 40px;font-size:var(--fs-s);line-height:1.6;color:var(--field-muted);max-width:62ch}
.u2-credit a{color:inherit}
.u2-credit summary{cursor:pointer;font:700 var(--fs-s)/1.5 var(--sans);color:var(--field-ink);list-style:none;min-height:44px;display:flex;align-items:center}
.u2-credit summary::-webkit-details-marker{display:none}
.u2-credit p{margin:4px 0 0}
@media (max-width:860px){.u2-places,.u2-flinks{grid-column:1/-1}.u2-flinks{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px var(--gap)}}

/* ---- inner pages ---- */
.u2-ph{padding:clamp(24px,5vw,72px) var(--margin) 0}
.u2-ph h1{font:900 clamp(2.8rem,9vw,9rem)/.9 var(--serif);letter-spacing:-.04em;margin:0;text-wrap:balance;max-width:14ch}
html[lang^="zh"] .u2-ph h1,html[lang^="ar"] .u2-ph h1,html[lang^="hi"] .u2-ph h1{font-weight:800;letter-spacing:0;line-height:1.12}
.u2-ph-sub{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);margin-top:clamp(24px,4vw,56px);align-items:start}
.u2-ph-sub .u2-lead{grid-column:1/span 6;max-width:38ch}
.u2-ph-act{grid-column:8/-1;display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center}
.u2-ph-pic{margin:clamp(32px,5vw,72px) var(--margin) 0}
.u2-ph-pic img{width:100%;height:clamp(260px,52vh,620px);object-fit:cover}
.u2-ph-pic figcaption{font-size:var(--fs-s);color:var(--muted);margin-top:10px}
@media (max-width:760px){.u2-ph-sub .u2-lead,.u2-ph-act{grid-column:1/-1}.u2-ph-act{margin-top:18px}}

.u2-body{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);padding:var(--sec) var(--margin) 0}
.u2-aside{grid-column:1/span 4;align-self:start;position:sticky;top:24px}
.u2-aside .u2-h2{font-size:clamp(1.9rem,3.2vw,3rem);max-width:10ch}
.u2-prose{grid-column:4/span 8;max-width:none;font-size:var(--fs-b)}
.u2-prose>p,.u2-prose>ul,.u2-prose>ol,.u2-prose>h2,.u2-prose>h3,.u2-prose>details{max-width:68ch}
.u2-prose>*+*{margin-top:1.1em}
.u2-prose h2{font:700 clamp(1.7rem,2.8vw,2.5rem)/1.12 var(--serif);letter-spacing:-.02em;margin-top:2.2em;max-width:22ch;text-wrap:balance}
.u2-prose h2:first-child{margin-top:0}
.u2-prose h3{margin-top:1.8em}
.u2-prose ul,.u2-prose ol{padding-inline-start:1.2em;margin:1em 0}
.u2-prose li{margin:.4em 0}
.u2-prose a{font-weight:600;text-underline-offset:.22em;text-decoration-thickness:2px}
.u2-prose figure{margin:2.4em 0}.u2-prose figure img{width:100%;aspect-ratio:16/9;object-fit:cover}
.u2-prose figcaption{font-size:var(--fs-s);color:var(--muted);margin-top:8px}
.u2-prose strong{font-weight:700}
.u2-prose .u2-tbl{grid-column:auto}
.u2-prose .u2-lead{max-width:46ch;font-size:var(--fs-l)}
@media (max-width:860px){.u2-aside,.u2-prose{grid-column:1/-1;position:static}.u2-aside{margin-bottom:32px}}

/* list blocks (combo, tours, rates): media-object rows, separated by space only */
.u2-list{display:grid;row-gap:clamp(28px,4vw,52px);margin:2em 0}
.u2-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 28px;align-items:center;text-decoration:none;color:inherit}
.u2-item.has-thumb{grid-template-columns:minmax(120px,26%) minmax(0,1fr) auto;column-gap:clamp(16px,2.4vw,32px)}
.u2-thumb{width:100%;aspect-ratio:4/3;object-fit:cover}
.u2-item-body{min-width:0}
.u2-item h3{font:700 var(--fs-m)/1.25 var(--serif);letter-spacing:-.01em;margin:0 0 6px}
.u2-t{display:block;font:700 var(--fs-m)/1.25 var(--serif);letter-spacing:-.01em;margin:0 0 6px}
.u2-badge{display:block;font:500 var(--fs-s)/1.4 var(--sans);color:var(--muted);margin:0 0 6px}
.u2-item p{margin:0;color:var(--muted);max-width:52ch}
.u2-price{font-weight:700;font-variant-numeric:tabular-nums;text-align:end}
@media (min-width:641px){.u2-price{white-space:nowrap}}
.u2-item .u2-link{grid-column:2/-1;justify-self:end}
@media (hover:hover) and (pointer:fine){a.u2-item{transition:transform 200ms var(--ease-out)}a.u2-item:hover{transform:translateX(6px)}[dir=rtl] a.u2-item:hover{transform:translateX(-6px)}}
@media (max-width:640px){
  .u2-item.has-thumb{grid-template-columns:minmax(96px,34%) minmax(0,1fr)}
  .u2-item.has-thumb .u2-price{grid-column:2}
  .u2-item{grid-template-columns:minmax(0,1fr)}.u2-price{text-align:start}
}
.u2-actions{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;margin:2em 0}
.u2-note{background:var(--tone);padding:20px 24px;margin:2em 0}
.u2-note p:last-child{margin-bottom:0}
.u2-prose details,.u2-faq-prose details{padding:16px 0}
.u2-prose summary,.u2-faq-prose summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:20px;align-items:center;font:600 var(--fs-l)/1.3 var(--sans);min-height:44px}
.u2-prose summary::-webkit-details-marker{display:none}
.u2-prose summary::after{content:"";width:12px;height:12px;border-inline-end:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translate(-3px,-3px);flex:none;transition:transform 200ms var(--ease-out)}
.u2-prose details[open] summary::after{transform:rotate(-135deg) translate(-3px,-3px)}
.u2-prose details p{margin:12px 0 0;max-width:60ch}
.u2-prose table{border-collapse:collapse;width:100%;font-size:var(--fs-s)}
.u2-prose th,.u2-prose td{text-align:start;padding:10px 12px;vertical-align:top}
.u2-prose th{background:var(--tone)}
.u2-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:36px var(--gap);margin:2em 0;padding:0;list-style:none}
.u2-facts b{display:block;font:700 clamp(2rem,3.4vw,3.2rem)/1 var(--serif);letter-spacing:-.03em;margin-bottom:6px}
.u2-facts span{color:var(--muted);font-size:var(--fs-s)}

/* forms (booking, contact) */
.u2-form{display:grid;gap:18px}
.u2-form label{display:grid;gap:6px;font-weight:600;font-size:var(--fs-s)}
.u2-form input,.u2-form select,.u2-form textarea,body.u2 .u2-prose input,body.u2 .u2-prose select,body.u2 .u2-prose textarea{font:400 1rem/1.4 var(--sans);padding:14px 14px;border:0;border-radius:0;background:var(--tone);color:var(--ink);width:100%;min-height:52px}
body.u2 .u2-prose input:focus,body.u2 .u2-prose select:focus,body.u2 .u2-prose textarea:focus{outline:3px solid var(--ink);outline-offset:0}

/* ---- long-form article ---- */
.u2-art{padding:var(--sec) var(--margin) 0;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap)}
.u2-art .u2-prose{grid-column:4/span 7}
.u2-meta{font-size:var(--fs-s);color:var(--muted);margin-top:18px}
@media (max-width:860px){.u2-art .u2-prose{grid-column:1/-1}}

/* ---- motion: transform + opacity only, content visible without JS ---- */
.js .u2-r{transform:translateY(18px);transition:transform 480ms var(--ease-out);transition-delay:calc(var(--i,0) * 50ms)}
.js .u2-r.in{transform:none}
.js .u2-wipe{clip-path:inset(0 0 35% 0);transition:clip-path 640ms var(--ease-in-out)}
.js .u2-wipe.in{clip-path:inset(0 0 0 0)}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .js .u2-r{transform:none;transition:none}
  .js .u2-wipe{clip-path:none;transition:none}
  .u2-mono{transform:none!important}
  .u2-btn,.u2-cells a,.u2-row{transition:none}
}

/* ---- mobile action bar (text only) ---- */
.u2-bar{display:none}
@media (max-width:760px){
  body.u2{padding-bottom:64px}
  .u2-bar{transition:transform 260ms var(--ease-out)}
  .u2-bar.away{transform:translateY(100%)}
  .u2-bar{display:grid;grid-template-columns:repeat(4,1fr) 1.9fr;position:fixed;inset-inline:0;bottom:0;z-index:40;background:var(--field);color:var(--field-ink);padding-bottom:env(safe-area-inset-bottom,0)}
  .u2-bar a,.u2-bar button{display:flex;align-items:center;justify-content:center;min-height:56px;text-decoration:none;font-weight:600;font-size:var(--fs-s);background:none;border:0;color:inherit;font-family:inherit;cursor:pointer}
  .u2-bar a:last-child{background:var(--accent);color:var(--on-accent);font-weight:700}
}

/* ---- third-party widgets restyled to the system ---- */
body.u2 #sao-contact,body.u2 #sao-fab,body.u2 #sao-fab-ai{display:none!important}
body.u2.sao-fab-open::after{display:none!important}
body.u2 #sao-chatbot-toggle{display:flex!important;align-items:center;justify-content:center}
body.u2 #sao-chatbot{bottom:20px!important;right:var(--margin)!important;font-family:var(--sans)!important}
[dir=rtl] body.u2 #sao-chatbot{right:auto!important;left:var(--margin)!important}
body.u2 #sao-chatbot-toggle{width:auto!important;min-width:56px;height:52px!important;padding:0 22px!important;border-radius:0!important;background:var(--ink)!important;color:var(--ground)!important;box-shadow:none!important;font:700 var(--fs-b)/1 var(--sans)!important;transition:transform 160ms var(--ease-out)!important}
body.u2 #sao-chatbot-toggle:active{transform:scale(.97)!important}
body.u2 #sao-chatbot-window{border-radius:0!important;bottom:62px!important;box-shadow:0 12px 40px rgba(13,23,44,.28)!important}
body.u2 #sao-chatbot-window>div:first-child{background:var(--field)!important}
body.u2 #sao-chatbot-window button{border-radius:0!important;font:700 .95rem var(--sans)!important;width:auto!important;height:auto!important;min-height:44px;min-width:44px;padding:0 14px!important}
body.u2 .sao-chatbot-bubble,body.u2 .sao-chatbot-chip{border-radius:0!important;box-shadow:none!important}
body.u2 .sao-chatbot-chip{border:0!important;background:var(--tone)!important;color:var(--ink)!important;min-height:44px}
body.u2 .sao-chatbot-msg.user .sao-chatbot-bubble{background:var(--accent)!important;color:var(--on-accent)!important}
body.u2 #sao-chatbot input{border-radius:0!important;border:0!important;background:var(--tone)!important;font-size:1rem!important;min-height:44px}
@media (max-width:760px){body.u2 #sao-chatbot-toggle{display:none!important}body.u2 #sao-chatbot{bottom:64px!important}body.u2 #sao-chatbot-window{bottom:0!important}}

body.u2 #achau-eco-pq{display:none!important}   /* the footer already links the three places */

.u2-gal-note{padding:clamp(56px,9vw,140px) var(--margin) 0;max-width:calc(56ch + var(--margin) * 2);font-size:var(--fs-l);line-height:1.5}
.u2-gal{margin-top:clamp(48px,7vw,120px)}

/* ---- booking engine (theme plugin) restyled: flat steps, one tone, square controls ---- */
body.u2 #sao-booking-app{max-width:none!important;margin:0!important}
body.u2 .sao-bs{background:var(--tone)!important;border-radius:0!important;box-shadow:none!important;padding:clamp(20px,3vw,40px)!important;margin-bottom:var(--gap)!important}
body.u2 .sao-bs h3,body.u2 .sao-bs h4{font:700 var(--fs-m)/1.25 var(--serif)!important;letter-spacing:-.01em}
body.u2 .sao-row{gap:var(--gap)!important}
body.u2 .sao-f label{font-size:var(--fs-s)!important;font-weight:600!important;color:var(--ink)!important}
body.u2 .sao-in,body.u2 #sao-booking-app input,body.u2 #sao-booking-app select,body.u2 #sao-booking-app textarea{background:var(--ground)!important;border:0!important;border-radius:0!important;min-height:52px;font:400 var(--fs-b)/1.4 var(--sans)!important;padding:14px!important;color:var(--ink)!important}
body.u2 .sao-bt{background:var(--accent)!important;color:var(--on-accent)!important;border-radius:0!important;min-height:52px;font:700 var(--fs-b) var(--sans)!important;transition:transform 160ms var(--ease-out)!important}
body.u2 .sao-bt:active,body.u2 .sao-bt-out:active{transform:scale(.97)}
body.u2 .sao-bt-out{border:0!important;background:var(--ground)!important;color:var(--ink)!important;border-radius:0!important;min-height:52px;font:700 var(--fs-b) var(--sans)!important}
body.u2 .sao-pc,body.u2 .sao-rc{border:0!important;border-radius:0!important;background:var(--ground)!important;padding:18px!important}
body.u2 .sao-pc.sel,body.u2 .sao-rc:has(input:checked){background:var(--accent)!important;color:var(--on-accent)!important}
body.u2 .sao-pc .pr{color:inherit!important;font-weight:700}
body.u2 .sao-pc .av{color:inherit!important;opacity:1}
body.u2 #sao-summary,body.u2 #sao-result{background:var(--ground)!important;border-radius:0!important}
body.u2 #sao-booking-app input[type=radio]{min-height:0;width:20px;height:20px;accent-color:var(--ink)}
body.u2 .sao-spin{border-color:var(--tone)!important;border-top-color:var(--ink)!important}

/* pictures carry width/height attributes for layout stability; their boxes are set by aspect-ratio */
.u2-thumb,.u2-gal img,.u2-prose figure img,.u2-split-pic img,.u2-tbl-pic img{height:auto}
.u2-gal-intro{padding:0 var(--margin);max-width:calc(60ch + var(--margin) * 2);font-size:var(--fs-b);margin:clamp(32px,5vw,72px) 0 0}
.u2-credit p,.u2-credit p a{font-size:var(--fs-b);line-height:1.6}

/* a strip of three pictures inside a page */
.u2-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap);margin:2.4em 0}
.u2-strip figure{margin:0}
.u2-strip img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover}
.u2-strip figcaption{font-size:var(--fs-s);color:var(--muted);margin-top:8px}
@media (max-width:640px){.u2-strip{grid-template-columns:1fr}.u2-strip img{aspect-ratio:4/3}}

/* partner program: package rows, facts inside prose, form states, result and the printable partner card */
body.u2 [hidden]{display:none!important}
.u2-price small{display:block;font-weight:400;font-size:var(--fs-s);color:var(--muted);margin-top:4px}
.u2-item .u2-meta{margin:6px 0 0}
.u2-prose>.u2-facts{max-width:none}
.u2-prose .u2-facts{padding:0;margin:2em 0;gap:28px 24px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
.u2-prose .u2-facts li{margin:0}
.u2-prose .u2-facts b{font-size:clamp(1.8rem,3vw,2.4rem)}
.u2-prose>form{max-width:68ch}
.u2-form h3{margin:0}
.u2-form .msg{font-weight:600;min-height:1.4em}
.u2-form .msg.er{color:#8F1D1D}
.u2-form .spp-bnote{margin:0;font-size:var(--fs-s);color:var(--muted)}
.u2-form .msg.ok{color:#1D5C3A}
.u2-prose .spp-ck{display:flex;gap:12px;align-items:flex-start;font-weight:400;font-size:var(--fs-b)}
body.u2 .u2-prose .spp-ck input{width:24px;min-height:24px;height:24px;margin:3px 0 0;padding:0;flex:none;accent-color:var(--ink)}
.spp-ck span{min-width:0}
.spp-lbl{display:grid;gap:6px;font-weight:600;font-size:var(--fs-s)}
.spp-code{font:700 clamp(1.8rem,5vw,2.8rem)/1 var(--serif);letter-spacing:.08em;margin:12px 0 18px}
#spp-res{max-width:68ch}
.spp-card{background:var(--tone);padding:24px;max-width:420px;text-align:center}
.spp-card img{width:100%;max-width:280px;height:auto;margin:0 auto 12px;background:#fff}
.spp-card p{margin:6px 0}
.spp-cap{font-weight:700}
.spp-n{font:700 var(--fs-l)/1.3 var(--serif);margin:8px 0}
@media print{body.u2 *{visibility:hidden}#spp-card,#spp-card *{visibility:visible}#spp-card{position:absolute;left:50%;top:10mm;transform:translateX(-50%);width:120mm}}

@media (min-width:861px){.u2-body-wide .u2-prose{grid-column:4/-1}}

/* app screens: voucher shop, web payment, voucher lookup */
.u2-app .u2-ph{padding-bottom:0}
.u2-app .u2-ph h1{font-size:clamp(2.4rem,6.5vw,6rem)}
.u2-app .u2-ph-pic{margin-top:clamp(24px,3vw,40px)}
.u2-app .u2-ph-pic img{height:clamp(160px,28vh,320px)}
@media (min-width:861px){.u2-body-app .u2-prose{grid-column:1/-1}}
.u2-body-app .u2-prose>*{max-width:none}

#spq-shop>h2{display:none}
#spq-shop>p{color:var(--muted);max-width:68ch;margin:0 0 2em}
#spq-shop>p small{font-size:inherit}
#spq-s1{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px var(--gap)}
@media (max-width:1000px){#spq-s1{grid-template-columns:minmax(0,1fr)}}
.spq-card{display:grid;grid-template-columns:minmax(92px,168px) minmax(0,1fr) auto;column-gap:clamp(14px,2vw,24px);row-gap:2px;align-items:start;padding:16px;transition:background-color 160ms ease}
.spq-card.on{background:var(--tone)}
.spq-card .spq-pic{grid-column:1;grid-row:1/span 6}
.spq-card .spq-pic img{width:100%;height:auto;aspect-ratio:1;object-fit:cover}
.spq-card>:not(.spq-pic):not(.spq-ctl){grid-column:2;min-width:0}
.spq-card h3{font:700 var(--fs-l)/1.25 var(--serif);margin:0}
.spq-card h3 small{font:600 var(--fs-s)/1 var(--sans);background:var(--ink);color:var(--ground);padding:3px 8px;margin-inline-start:8px;vertical-align:middle}
.spq-card h3+div{font-weight:700;font-variant-numeric:tabular-nums}
.spq-card h3+div+div{color:var(--muted);font-size:var(--fs-s)}
.spq-card h3+div+div+div{font-weight:700;color:var(--ink)}
.spq-card p{margin:6px 0 0;color:var(--muted)}
.spq-ctl{grid-column:3;grid-row:1/span 6;align-self:center;display:flex;flex-direction:row-reverse;align-items:center;gap:10px}
.spq-ctl button{width:52px;height:52px;min-width:52px;border:0;border-radius:0;font:700 1.5rem/1 var(--sans);cursor:pointer;padding:0;display:inline-flex;align-items:center;justify-content:center;transition:transform 160ms var(--ease-out)}
.spq-ctl button:active{transform:scale(.95)}
.spq-ctl .spq-p{background:var(--accent);color:var(--on-accent)}
.spq-ctl .spq-m{background:var(--ink);color:var(--ground)}
.spq-ctl .spq-q{min-width:1.2em;text-align:center;font:700 var(--fs-l)/1 var(--sans)}
@media (max-width:480px){.spq-card{grid-template-columns:88px minmax(0,1fr);padding:14px 0}.spq-card.on{padding:14px 12px}.spq-ctl{grid-column:2;grid-row:auto;justify-content:flex-start;margin-top:8px}}
#spq-bar{display:none;position:fixed;inset-inline:var(--margin);bottom:24px;z-index:60;background:var(--ink);color:var(--ground);padding:10px 10px 10px 20px;align-items:center;justify-content:space-between;gap:16px;max-width:560px;margin-inline:auto}
#spq-bar button{background:var(--accent);color:var(--on-accent);border:0;border-radius:0;min-height:48px;padding:10px 20px;font:700 var(--fs-b)/1 var(--sans);cursor:pointer}
@media (max-width:760px){#spq-bar{bottom:calc(64px + env(safe-area-inset-bottom,0px))}}
#spq-s2,#spq-s3{margin-top:24px;max-width:720px}
#spq-back{display:inline-block;margin-bottom:12px;color:var(--muted)}
#spq-s2 h3,#spq-s3 h3{font:700 var(--fs-m)/1.2 var(--serif);margin:0 0 12px}
.spq-total{display:flex;justify-content:space-between;gap:16px;font-weight:700;margin:12px 0 20px;padding:14px 16px;background:var(--tone)}
.spq-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
#spq-s2 label{display:grid;gap:6px;font-weight:600;font-size:var(--fs-s)}
#spq-s2 label small{font-weight:400;color:var(--muted)}
#spq-s2 a#spq-rt{grid-column:1/-1;color:var(--muted)}
#spq-s2 p{color:var(--muted)}
#spq-order{width:100%;margin-top:16px;min-height:56px;background:var(--accent);color:var(--on-accent);border:0;border-radius:0;font:700 var(--fs-b)/1 var(--sans);cursor:pointer}
#spq-s2 #spq-order+div{margin-top:10px;color:var(--muted)}
#spq-err{color:#8F1D1D;margin-top:8px;font-weight:600}
.spq-chip,.spq-opt,.spq-bank,.spq-copy{font:600 var(--fs-b)/1.2 var(--sans);min-height:44px;padding:10px 18px;border:0;border-radius:0;background:var(--tone);color:var(--ink);cursor:pointer;transition:transform 160ms var(--ease-out)}
.spq-chip:active,.spq-opt:active,.spq-bank:active,.spq-copy:active{transform:scale(.97)}
.spq-chip.on,.spq-opt.on{background:var(--ink);color:var(--ground)}
.spq-opt{display:block;width:100%;text-align:start;min-height:56px;font-weight:700}
.spq-copy{min-height:36px;padding:4px 12px;font-size:var(--fs-s);margin-inline-start:8px}
.spq-row,#spq-ch,#spq-banks{display:flex;flex-wrap:wrap;gap:8px}
#spq-opts{display:grid;gap:10px}
#spq-bank-all{margin-top:10px}
#spq-later-oc{font:700 clamp(1.8rem,5vw,2.8rem)/1.1 var(--serif);letter-spacing:.06em;background:var(--tone);padding:16px;margin:12px 0}
.spq-pay{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 16px;margin:16px 0}
.spq-pay b{font-weight:600}
#spq-vqr{width:300px;max-width:100%;height:auto;background:#fff}
#spq-oq img{width:200px;max-width:100%;height:auto;background:#fff}
#spq-s3 small,#spq-s3 #spq-wait,#spq-s3 #spq-shm{color:var(--muted)}
@media print{body.u2 *{visibility:hidden}#spq-done,#spq-done *{visibility:visible}#spq-done{position:absolute;left:0;top:0;width:100%}}
.spq-web>h2,.spq-web>h2+p{display:none}
.spq-web{max-width:560px}
.spq-web form{display:grid;gap:14px;margin-top:8px}
.spq-web button{min-height:52px;background:var(--accent);color:var(--on-accent);border:0;border-radius:0;font:700 var(--fs-b)/1 var(--sans);cursor:pointer}
.spq-web img{width:300px;max-width:100%;height:auto;background:#fff;margin:12px 0}
.vck h3{font:700 var(--fs-m)/1.2 var(--serif);margin:0}
.vck p{margin:4px 0 16px;color:var(--muted)}
.vck dl{display:grid;grid-template-columns:auto 1fr;gap:6px 20px;margin:0}
.vck dt{color:var(--muted)}
.vck dd{margin:0;font-weight:600}
.vck .s-active{color:#1D5C3A}.vck .s-used{color:#7A4B00}.vck .s-expired,.vck .s-refunded{color:#8F1D1D}
.vck img{margin-top:16px;background:#fff;width:160px;height:160px}

/* long list titles (blog posts) keep to two lines; the bottom bar keeps its words off the screen edge in every language */
@media (max-width:760px){.u2-bar{padding-inline:8px}}

/* post lists: pagination */
.navigation.pagination{margin-top:2.4em}
.navigation .nav-links{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center}
.navigation .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:0 14px;text-decoration:none;font-weight:600;background:var(--tone)}
.navigation .page-numbers.current{background:var(--ink);color:var(--ground)}
.navigation .page-numbers.dots{background:none}

@media (max-width:640px){.u2-item.has-thumb .u2-t{font-size:var(--fs-l)}}

/* picture frames: one ratio per place on the page; every crop keeps the subject (object-position comes from focus.php) */
.u2-hero-pic img,.u2-ph-pic img{width:100%;height:auto;aspect-ratio:21/9;max-height:640px;object-fit:cover}
@media (max-width:760px){.u2-hero-pic img,.u2-ph-pic img{aspect-ratio:4/3;max-height:none}}
.u2-split-pic img{aspect-ratio:4/5}
.u2-prose figure img{aspect-ratio:3/2}
.spq-card .spq-pic img{aspect-ratio:4/3}
.u2-g2 img,.u2-g5 img{aspect-ratio:3/2}
