:root{--paper:#e9e7ee;--paper2:#dfdce7;--sheet:#fbfafd;--ink:#1d1b33;--mute:#514d6b;--line:#cdc8d9;--cover:#272648;--cover2:#323159;--oncover:#ffffff;--covermute:#c7c5dd;--foil:#f0c575;--st1:#5c4193;--st2:#95362e;--st3:#1b6b4a;--act:#95362e;--onact:#ffffff;--guil:#d6d1e0}
/* Look P "Passport": vets, groomers, pet sitters (and any business that likes being official in a friendly way).
   The practice issues its own ID. The cover band is set like a passport's machine-readable zone (nav links between
   '<' fillers), pages are tinted visa paper with a fine security pattern, the hero is an ID card with a pet's
   portrait, data fields and machine-readable lines, services are rubber stamps in dashed visa slots or rows of a
   vaccination record, reviews are postcards, hours a perforated validity strip, every page ends on a tear-off stub.
   Fonts (OFL, public/fonts, latin + latin-ext): Rethink Sans 5.3.0 (@fontsource-variable, 400–800, with italic) and
   Fragment Mono 5.3.0 (@fontsource), the faces assigned to P in the approved font shortlist. */
@font-face{font-family:"Rethink P";font-style:normal;font-weight:400 800;font-display:swap;src:url(fonts/rethink-sans-latin-ext-wght-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Rethink P";font-style:normal;font-weight:400 800;font-display:swap;src:url(fonts/rethink-sans-latin-wght-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Rethink P";font-style:italic;font-weight:400 800;font-display:swap;src:url(fonts/rethink-sans-latin-ext-wght-italic.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Rethink P";font-style:italic;font-weight:400 800;font-display:swap;src:url(fonts/rethink-sans-latin-wght-italic.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Fragment P";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/fragment-mono-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Fragment P";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/fragment-mono-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
/* headline face per pairing: stamp = heavy Rethink Sans; typed = Fragment Mono, like a form filled in on a typewriter */
body{--hf:"Rethink P",var(--fd);--tf:"Rethink P",system-ui,sans-serif;--mf:"Fragment P",ui-monospace,monospace;--hw:800;--ht:-.025em;--hs:1}
body.p-f-typed{--hf:"Fragment P",ui-monospace,monospace;--hw:400;--ht:-.04em;--hs:.84}
:root{--hm:clamp(12px,1.4vw,22px);--pad:clamp(16px,4vw,48px);--max:1200px;--r:16px;--m-accent:var(--st1);--m-header-bg:var(--cover);
  --g-max:1200px;--g-pad:var(--pad);--g-bg:var(--paper);--g-paper:var(--paper);--g-surface:var(--sheet);--g-ink:var(--ink);--g-muted:var(--mute);--g-line:var(--line);--g-accent:var(--st1);--g-radius:calc(14px*var(--tune-radius,1));--g-top:0px}
body{--g-fd:var(--hf);--g-ft:var(--tf)}
.p-ink1{--c:var(--st1)}.p-ink2{--c:var(--st2)}.p-ink3{--c:var(--st3)}

/* ---------- base ---------- */
*{box-sizing:border-box;margin:0}
body{background:var(--paper);color:var(--ink);font:400 calc(18px*var(--tune-size,1))/1.6 var(--tf);-webkit-font-smoothing:antialiased}
a{color:inherit}img{display:block;max-width:100%}
ul,ol{list-style:none;padding:0}
h1,h2,h3{font-family:var(--hf);font-weight:var(--hw);letter-spacing:var(--ht);line-height:1.04;text-wrap:balance}
h1,h2,h3,p,li,dd,dt,b,summary,figcaption,.p-btn,.p-gal .g-title{overflow-wrap:anywhere;hyphens:auto}
h2{font-size:calc(calc(clamp(30px,3.4vw,46px) * var(--hs))*var(--tune-size,1))}
h3{font-size:calc(calc(clamp(19px,1.5vw,22px) * var(--hs))*var(--tune-size,1));line-height:1.2}
:where(main) p{text-wrap:pretty}
.p-wrap{max-width:var(--max);margin:0 auto;padding:0 var(--pad)}
.p-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.p-lede{font-size:calc(clamp(18px,1.45vw,20px)*var(--tune-size,1));line-height:1.45;color:var(--mute);max-width:46ch}
.p-mono-l{display:block;font:400 calc(13px*var(--tune-size,1))/1.4 var(--mf);color:inherit;opacity:.8;margin-bottom:6px}
:focus-visible{outline:3px solid var(--st1);outline-offset:2px}
.p-cover :focus-visible,.p-close :focus-visible,.p-foot :focus-visible,.p-page-l :focus-visible{outline-color:var(--foil)}
.p-emblem{display:block;flex:none;width:32px;height:32px}
/* security pattern: fine wavy lines in the paper's own tint (decoration) */
.p-guil{position:relative;isolation:isolate}
.p-guil::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--guil);opacity:.4;pointer-events:none;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='36'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.1'%3E%3Cpath d='M0 9C26-3 54-3 80 9s54 12 80 0'/%3E%3Cpath d='M0 27C26 15 54 15 80 27s54 12 80 0'/%3E%3Cpath d='M0 18C26 30 54 30 80 18S134 6 160 18'/%3E%3C/g%3E%3C/svg%3E") 0 0/160px 36px;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='36'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.1'%3E%3Cpath d='M0 9C26-3 54-3 80 9s54 12 80 0'/%3E%3Cpath d='M0 27C26 15 54 15 80 27s54 12 80 0'/%3E%3Cpath d='M0 18C26 30 54 30 80 18S134 6 160 18'/%3E%3C/g%3E%3C/svg%3E") 0 0/160px 36px}

/* ---------- buttons ---------- */
.p-btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:54px;padding:0 24px;border:0;border-radius:calc(6px*var(--tune-radius,1));background:var(--act);color:var(--onact);font:700 calc(17px*var(--tune-size,1))/1.1 var(--tf);text-decoration:none;cursor:pointer;flex-wrap:wrap;text-align:center;min-width:0;box-shadow:inset 0 0 0 3px var(--act),inset 0 0 0 4.5px color-mix(in srgb,var(--onact) 35%,transparent)}
.p-btn b{font:400 calc(16px*var(--tune-size,1))/1 var(--mf);letter-spacing:0}
.p-btn-2{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px currentColor}
.p-btn-light{background:var(--foil);color:var(--cover);box-shadow:none}
.p-acts{display:flex;flex-wrap:wrap;gap:12px}
.p-link{font-weight:700;color:var(--st1);text-underline-offset:.25em;text-decoration-thickness:2px}
@media (hover:hover) and (prefers-reduced-motion:no-preference){.p-btn{transition:transform .2s,filter .2s}.p-btn:hover{filter:brightness(1.08)}.p-btn-2:hover{background:color-mix(in srgb,currentColor 7%,transparent)}}

/* ---------- the cover band: one machine-readable line ---------- */
.p-cover{position:relative;z-index:20;background:var(--cover);color:var(--oncover)}
.p-cover-in{display:flex;align-items:center;gap:clamp(16px,2.4vw,36px);min-height:68px;max-width:1720px;padding-inline:calc(var(--hm) + clamp(4px,1.4vw,24px));white-space:nowrap;font:400 15px/1 var(--mf)}
.p-brand{display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none;min-width:0}
.p-brand .p-emblem{color:var(--foil);width:34px;height:34px}
.p-brand-t{min-width:0;font:var(--hw) calc(21px*var(--tune-size,1))/1.1 var(--hf);letter-spacing:var(--ht);overflow:hidden;text-overflow:ellipsis}
.p-nav{flex:1 1 auto;min-width:0}
.p-nav ul{display:flex;align-items:center}
.p-nav li{display:flex;align-items:center}
.p-nav li+li::before{content:"\00b7" / "";color:var(--covermute);padding:0 .3em;font-weight:800}
:where(.p-nav) a{display:block;padding:9px 9px;border-radius:calc(7px*var(--tune-radius,1));color:var(--oncover);text-decoration:none;font:600 calc(15px*var(--tune-size,1))/1 var(--tf)}
.p-nav a[aria-current]{background:color-mix(in srgb,var(--oncover) 14%,transparent)}
.p-nav a:hover{text-decoration:underline;text-underline-offset:.3em}
.p-cover-end{display:flex;align-items:center;gap:clamp(14px,1.8vw,24px);margin-left:auto}
.p-cover .langs{font:400 calc(14px*var(--tune-size,1))/1 var(--mf);gap:.4em}
.p-cover .langs a{padding:6px 7px;border-radius:calc(6px*var(--tune-radius,1))}
.p-cover .langs a[aria-current]{text-decoration:none;background:color-mix(in srgb,var(--oncover) 16%,transparent);font-weight:400}
.p-call{display:inline-flex;align-items:center;gap:9px;color:var(--foil)!important;text-decoration:none;font-size:calc(15.5px*var(--tune-size,1))}
.p-call:hover span{text-decoration:underline;text-underline-offset:.3em}
.p-call svg{width:17px;height:17px}
.p-menu{display:none}
@media (max-width:900px){
  :root{--hm:12px}
  .p-cover-in{gap:12px;min-height:60px}
  .p-brand-t{font-size:calc(18px*var(--tune-size,1))}.p-brand .p-emblem{width:30px;height:30px}
  .p-nav,.p-cover-end{display:none}
  .p-menu{margin-left:auto}
  .p-menu{display:block;min-width:0}
  .p-menu summary{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 12px;border-radius:calc(10px*var(--tune-radius,1));list-style:none;cursor:pointer;font:400 calc(15px*var(--tune-size,1))/1 var(--mf);background:color-mix(in srgb,var(--oncover) 12%,transparent);white-space:normal;overflow-wrap:anywhere;max-width:100%}
  .p-menu summary::-webkit-details-marker{display:none}
  .p-menu summary::before{content:"";width:18px;height:8px;border-top:2px solid currentColor;border-bottom:2px solid currentColor}
  .p-menu[open] summary::before{height:0;border-bottom:0}
  .p-menu-sheet{position:absolute;left:0;right:0;top:100%;padding:6px var(--pad) 26px;background:var(--cover);border-top:1px solid color-mix(in srgb,var(--covermute) 30%,transparent);box-shadow:0 24px 30px -22px rgb(10 8 30/.6);white-space:normal}
  :where(.p-menu-sheet ul) a{display:block;padding:15px 0;border-bottom:1px dashed color-mix(in srgb,var(--covermute) 45%,transparent);font:var(--hw) calc(21px*var(--tune-size,1))/1.2 var(--hf);letter-spacing:var(--ht);text-decoration:none}
  .p-menu-sheet ul a[aria-current]{color:var(--foil)}
  .p-menu-tel{display:inline-block;margin:20px 24px 0 0;font:400 calc(18px*var(--tune-size,1))/1.2 var(--mf);color:var(--foil);text-decoration:none}
  .p-menu-sheet .langs{display:inline-flex;margin-top:20px}
}

/* ---------- hero: the ID card, as wide as the screen ----------
   The pet's portrait fills the card's left half edge to edge; the headline, one action and the card fields sit on the
   right under the card's header strip (the only place the security pattern shows in the hero); the rubber stamp lands
   on the photo's corner. Phones: the photo on top, the text under it. */
.p-hero{--split:54%;padding:var(--hm) var(--hm) calc(clamp(36px,4.6vw,64px)*var(--tune-space,1))}
.p-card,.p-book{--rot:-12deg;position:relative;display:grid;grid-template-columns:minmax(0,var(--split)) minmax(0,1fr);max-width:1440px;margin-inline:auto;min-height:clamp(560px,calc(100svh - 68px - 2 * var(--hm)),860px);border-radius:calc(24px*var(--tune-radius,1));background:var(--sheet);box-shadow:0 0 0 1px var(--line),0 30px 60px -36px color-mix(in srgb,var(--cover) 55%,transparent)}
.p-idphoto{position:relative;margin:0;border-radius:calc(24px*var(--tune-radius,1)) 0 0 calc(24px*var(--tune-radius,1));overflow:hidden;background:var(--paper2)}
.p-idphoto img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.p-card .p-seal{display:none}
.p-seal{position:absolute;left:24px;bottom:24px;width:64px;height:64px;border-radius:50%;background:radial-gradient(circle,transparent 0 9px,rgb(255 255 255/.75) 9.5px 10.5px,transparent 11px 16px,rgb(255 255 255/.75) 16.5px 17.5px,transparent 18px),conic-gradient(from 30deg,#f3c4de,#bcd6f5,#bfe9d4,#f3e3b4,#f3c4de);opacity:.8;box-shadow:inset 0 0 0 2px rgb(255 255 255/.85),0 2px 8px rgb(0 0 0/.18)}
.p-card-side{display:grid;grid-template-rows:auto 1fr auto;min-width:0}
.p-card-top{display:flex;align-items:center;gap:12px;padding:18px clamp(24px,4vw,64px);background:var(--paper2);border-radius:0 calc(24px*var(--tune-radius,1)) 0 0;font:400 calc(14px*var(--tune-size,1))/1.2 var(--mf);color:var(--mute)}
.p-card-top.p-guil::before{border-radius:inherit;opacity:.55}
.p-card-em{width:26px;height:26px;color:var(--cover)}
.p-kicker{font:400 calc(14px*var(--tune-size,1))/1.2 var(--mf);color:var(--mute)}
.p-card-top .p-kicker{color:var(--ink)}
.p-card-no{margin-left:auto}
.p-card-main{display:grid;gap:clamp(18px,1.8vw,26px);align-content:center;padding:calc(clamp(28px,3.4vw,52px)*var(--tune-space,1)) clamp(24px,4vw,64px)}
.p-card-main h1,.p-page-l h1{font-size:calc(calc(clamp(48px,7vw,112px) * var(--hs))*var(--tune-size,1));line-height:.93;letter-spacing:calc(var(--ht) - .012em)}
/* typed headlines: the mono face sets narrower, so the hero line is drawn a size up to keep its weight on the screen */
.p-f-typed .p-card-main h1,.p-f-typed .p-page-l h1{font-size:calc(clamp(46px,6.3vw,100px)*var(--tune-size,1));line-height:1}
.p-card-side .p-fields{margin:0 clamp(24px,4vw,64px);padding-block:18px clamp(22px,2.4vw,32px)}
.p-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px 18px;padding-top:clamp(14px,1.6vw,18px);border-top:1.5px dashed var(--line)}
.p-fields>div{padding-left:12px;border-left:2px solid var(--line);min-width:0}
.p-fields dt{font:400 calc(13px*var(--tune-size,1))/1.3 var(--mf);color:var(--mute)}
.p-fields dd{font-weight:600;font-size:calc(16px*var(--tune-size,1));line-height:1.35;margin-top:3px}
.p-acts{align-items:center;gap:14px 28px}
.p-acts .p-btn{min-height:58px;padding-inline:28px}
.p-act-2{font-size:calc(17px*var(--tune-size,1));padding-block:10px}
.p-mrz{display:grid;font-family:var(--mf);color:var(--mute);background:var(--paper);border-radius:calc(10px*var(--tune-radius,1));padding:10px clamp(10px,1.6vw,18px)}
.p-mrz span{display:block;white-space:pre;overflow:hidden;-webkit-mask:linear-gradient(90deg,#000 calc(100% - 3em),transparent);mask:linear-gradient(90deg,#000 calc(100% - 3em),transparent);font-size:calc(clamp(14px,1.45vw,20px)*var(--tune-size,1));line-height:1.45;letter-spacing:.04em}
.p-sheen{position:absolute;inset:0;border-radius:inherit;overflow:hidden;pointer-events:none}
.p-sheen::before{content:"";position:absolute;top:-10%;bottom:-10%;left:-40%;width:34%;background:linear-gradient(100deg,transparent,rgb(255 255 255/.45) 45%,rgb(214 232 255/.3) 55%,transparent);transform:skewX(-14deg);opacity:0}
/* the rubber stamp lands on the photo's lower corner, a third of it over the card's paper */
.p-card .p-card-stamp{position:absolute;z-index:2;--sz:150px;left:calc(var(--split) - var(--sz) + 40px);bottom:clamp(92px,11vh,132px);padding:20px;outline-offset:-10px;rotate:var(--rot);background:color-mix(in srgb,var(--sheet) 84%,transparent)}
.p-card-stamp .p-stamp-s{font-size:calc(13px*var(--tune-size,1))}
.p-card .p-card-stamp .p-stamp-b{font-size:calc(calc(34px * var(--hs))*var(--tune-size,1))}
@media (max-width:900px){
  .p-card,.p-book{grid-template-columns:minmax(0,1fr);min-height:0}
  .p-idphoto{height:clamp(240px,34svh,420px);border-radius:calc(20px*var(--tune-radius,1)) calc(20px*var(--tune-radius,1)) 0 0}
  .p-card-top{border-radius:0;padding:11px 20px}
  .p-card-main{padding:18px 20px 22px;gap:16px}
  .p-card-main h1,.p-page-l h1{font-size:calc(calc(clamp(42px,11.8vw,64px) * var(--hs))*var(--tune-size,1))}
  .p-f-typed .p-card-main h1,.p-f-typed .p-page-l h1{font-size:calc(clamp(44px,11.6vw,60px)*var(--tune-size,1))}
  .p-card-side .p-fields{margin:0 20px;padding-bottom:22px}
  .p-card .p-card-stamp{--sz:104px;left:auto;right:14px;bottom:auto;top:calc(clamp(240px,34svh,420px) - 104px - 14px);padding:11px;outline-offset:-7px}
  .p-card-stamp .p-stamp-s{font-size:calc(11px*var(--tune-size,1))}
  .p-card .p-card-stamp .p-stamp-b{font-size:calc(calc(25px * var(--hs))*var(--tune-size,1))}
  .p-seal{left:16px;bottom:16px;width:52px;height:52px}
}
@media (max-width:560px){
  .p-acts .p-btn{flex:1 1 100%}
  .p-acts .p-btn b{display:none}
  .p-act-2{align-self:center}
}

/* ---------- stamps ---------- */
.p-stamp{--sz:200px;display:inline-flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:6px;width:var(--sz);aspect-ratio:1;padding:20px;color:var(--c,var(--st1));border:3px solid currentColor;outline:1.5px solid currentColor;outline-offset:-10px;font:400 calc(13px*var(--tune-size,1))/1.25 var(--mf)}
.p-stamp-ring{border-radius:50%}
.p-stamp-box{border-radius:calc(14px*var(--tune-radius,1));aspect-ratio:1.42;width:calc(var(--sz) * 1.12);padding:18px 22px}
.p-stamp-oval{border-radius:50%;aspect-ratio:1.42;width:calc(var(--sz) * 1.18);padding:18px 34px}
.p-stamp-b{display:block;font:var(--hw) calc(calc(20px * var(--hs))*var(--tune-size,1))/1.08 var(--hf);letter-spacing:var(--ht);text-wrap:balance;max-width:100%;color:inherit}
:where(.p-stamp-b) a{color:inherit;text-decoration:none}
.p-stamp-b a:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.15em}
.p-stamp-s{display:block;max-width:100%;overflow-wrap:normal}
.p-card-stamp .p-stamp-b,.p-book-stamp .p-stamp-b{font-size:calc(calc(34px * var(--hs))*var(--tune-size,1));line-height:1}

/* ---------- services: stamps on the open page ---------- */
.p-svc,.p-rev,.p-hours,.p-figs,.p-staff,.p-contact,.p-rates,.p-faq{padding-block:calc(clamp(48px,6vw,88px)*var(--tune-space,1))}
.p-head{display:grid;gap:12px;margin-bottom:calc(clamp(24px,3vw,40px)*var(--tune-space,1))}
.p-head p{color:var(--mute);max-width:60ch}
.p-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(36px,4vw,56px) clamp(20px,2.4vw,36px)}
.p-slot{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:180px auto;justify-items:center;align-content:start;gap:18px;text-align:center}
.p-slot .p-stamp{--sz:160px;align-self:center;padding:16px}
.p-slot .p-stamp-box,.p-slot .p-stamp-oval{padding:14px 20px}
.p-slot-t{display:grid;gap:8px;max-width:34ch;color:var(--mute);font-size:calc(16px*var(--tune-size,1));line-height:1.5}
.p-price{font:400 calc(18px*var(--tune-size,1))/1.3 var(--mf);color:var(--ink)}
.p-best{font-size:calc(15px*var(--tune-size,1))}.p-best b{color:var(--ink)}
/* the lead service: its photo beside its stamp, over two or three slots */
.p-slot-lead{grid-column:span 2;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);grid-template-rows:1fr 1fr;align-content:stretch;column-gap:clamp(24px,3vw,40px);background:var(--sheet);border-radius:calc(20px*var(--tune-radius,1));overflow:hidden;padding:0 clamp(20px,2.4vw,32px) 0 0;box-shadow:0 0 0 1px var(--line)}
.p-span3{grid-column:span 3;grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
.p-span4{grid-row:span 2}
.p-lead-ph{grid-column:1;grid-row:1/span 2;align-self:stretch;justify-self:stretch;position:relative;margin:0;min-height:300px;background:var(--paper2)}
.p-lead-ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.p-slot-lead .p-stamp{grid-column:2;align-self:end;margin-top:28px}
.p-slot-lead .p-slot-t{grid-column:2;align-self:start;padding-bottom:28px}
.p-more{margin-top:calc(clamp(28px,3vw,44px)*var(--tune-space,1));text-align:center}
.p-slots-full{grid-template-columns:minmax(0,1fr);gap:0;border-top:1.5px dashed var(--line)}
.p-slots-full .p-slot{grid-template-rows:none;grid-template-columns:260px minmax(0,1fr);justify-items:start;align-items:center;gap:clamp(20px,4vw,56px);border-bottom:1.5px dashed var(--line);padding:28px 0;text-align:left}
.p-slots-full .p-slot .p-stamp{justify-self:center}
.p-slots-full .p-slot-t{max-width:62ch;font-size:calc(17px*var(--tune-size,1))}
@media (min-width:1001px){
  .p-slots:not(.p-slots-full):not(:has(.p-slot-lead)){grid-template-columns:repeat(6,minmax(0,1fr))}
  .p-slots:not(.p-slots-full):not(:has(.p-slot-lead)) .p-slot{grid-column:span 2}
  .p-slots:not(.p-slots-full):not(:has(.p-slot-lead)) .p-slot:last-child:nth-child(3n+1){grid-column:3/span 2}
  .p-slots:not(.p-slots-full):not(:has(.p-slot-lead)) .p-slot:last-child:nth-child(3n+2){grid-column:4/span 2}
  .p-slots:not(.p-slots-full):not(:has(.p-slot-lead)) .p-slot:nth-last-child(2):nth-child(3n+1){grid-column:2/span 2}
}
@media (max-width:1000px){
  .p-slots{grid-template-columns:repeat(2,minmax(0,1fr))}
  .p-slot-lead,.p-span3{grid-column:1/-1;grid-row:auto}
  .p-slots:not(.p-slots-full) .p-slot:not(.p-slot-lead):last-child:nth-child(even){grid-column:1/-1}
}
@media (max-width:640px){
  .p-slots{grid-template-columns:minmax(0,1fr);gap:14px}
  .p-slot{grid-template-rows:none;grid-template-columns:136px minmax(0,1fr);justify-items:start;align-items:center;padding:6px 0;gap:16px;text-align:left}
  .p-slot .p-stamp{--sz:132px;justify-self:center;padding:12px;outline-offset:-8px;font-size:calc(12px*var(--tune-size,1))}
  .p-slot .p-stamp-ring{padding-inline:18px}
  .p-slot .p-stamp-box,.p-slot .p-stamp-oval{width:136px;padding:12px 14px}
  .p-slot .p-stamp-b{font-size:calc(calc(16px * var(--hs))*var(--tune-size,1))}
  .p-slot-t{font-size:calc(15px*var(--tune-size,1))}
  .p-price{font-size:calc(17px*var(--tune-size,1))}
  .p-slot-lead{grid-template-columns:136px minmax(0,1fr);grid-template-rows:auto auto;padding:0 0 18px;margin-bottom:10px}
  .p-lead-ph{grid-column:1/-1;grid-row:1;min-height:0;aspect-ratio:16/10;margin-bottom:4px}
  .p-slot-lead .p-stamp{grid-column:1;grid-row:2;margin:0 0 0 16px;align-self:center}
  .p-slot-lead .p-slot-t{grid-column:2;grid-row:2;align-self:center;padding:0 16px 0 0}
  .p-slots-full{border-top:0}
  .p-slots-full .p-slot{grid-template-columns:minmax(0,1fr);justify-items:center;text-align:center;padding:24px 0}
}

/* ---------- services: the vaccination record ---------- */
.p-rec-head,.p-rec-row{display:grid;grid-template-columns:minmax(0,280px) minmax(0,1fr) 110px 170px;gap:clamp(16px,2.4vw,32px);align-items:center}
.p-rec-head{padding:0 0 12px;font:400 calc(13px*var(--tune-size,1))/1.2 var(--mf);color:var(--mute);border-bottom:2px solid var(--ink)}
.p-rec-head span:nth-child(n+3),.p-rec-time,.p-rec-price{text-align:right}
.p-rec-row{padding:16px clamp(14px,2vw,24px);margin-bottom:12px;border-radius:calc(16px*var(--tune-radius,1));background:color-mix(in srgb,Canvas 88%,var(--foil));box-shadow:0 0 0 1px color-mix(in srgb,var(--st2) 14%,var(--line)),0 8px 18px -14px rgb(60 40 10/.35)}
.p-svc:has(.p-rec){background:color-mix(in srgb,var(--paper) 40%,color-mix(in srgb,Canvas 92%,var(--foil)))}
.p-sticker{padding:0 0 0 14px;box-shadow:none;border-radius:calc(3px*var(--tune-radius,1));display:grid;gap:10px}
.p-sticker h3{font-size:calc(calc(18px * var(--hs))*var(--tune-size,1))}
:where(.p-sticker h3) a{text-decoration:none}.p-sticker h3 a:hover{text-decoration:underline}
.p-code{display:block;height:14px;width:min(140px,40%);opacity:.6;background:repeating-linear-gradient(90deg,var(--ink) 0 2px,transparent 2px 4px,var(--ink) 4px 5px,transparent 5px 8px,var(--ink) 8px 11px,transparent 11px 13px)}
.p-rec-about{display:grid;gap:6px;color:var(--mute);font-size:calc(16px*var(--tune-size,1));line-height:1.5}
.p-rec-time{font:400 calc(15px*var(--tune-size,1))/1.3 var(--mf);color:var(--mute)}
.p-rec-price{font:400 calc(17px*var(--tune-size,1))/1.3 var(--mf);color:var(--ink);overflow-wrap:normal}
.p-rec-full .p-rec-about{font-size:calc(17px*var(--tune-size,1))}
.p-svc .p-rec+.p-more{text-align:left}
@media (min-width:761px) and (max-width:1000px){
  .p-rec-head{display:none}
  .p-rec-row{grid-template-columns:minmax(0,240px) minmax(0,1fr) auto;grid-template-areas:"st ab ab" "st tm pr";gap:8px 28px}
  .p-rec-row .p-sticker{grid-area:st}.p-rec-row .p-rec-about{grid-area:ab}.p-rec-row .p-rec-time{grid-area:tm;text-align:left}.p-rec-row .p-rec-price{grid-area:pr}
}
@media (max-width:760px){
  .p-rec-head{display:none}
  .p-rec-row{grid-template-columns:1fr auto;gap:10px 16px}
  .p-sticker,.p-rec-about{grid-column:1/-1}
  .p-rec-time{text-align:left}
}

/* ---------- the photo page: a wide photo bled to the page margins, held by photo corners ---------- */
.p-photo{padding:clamp(8px,2vw,24px) var(--hm)}
.p-photo .p-wrap{max-width:1720px;padding:0}
.p-photo-in{position:relative;margin:0}
.p-photo-in img{width:100%;height:auto;aspect-ratio:21/9;object-fit:cover;border-radius:calc(24px*var(--tune-radius,1))}
.p-photo-in figcaption{font:400 calc(14px*var(--tune-size,1))/1.4 var(--mf);color:var(--mute);padding:14px clamp(4px,1.4vw,24px) 0}
.p-pc{position:absolute;inset:clamp(10px,1.4vw,16px);pointer-events:none;z-index:1}
.p-photo-f{position:relative}
.p-photo-f .p-pc{inset:clamp(14px,1.8vw,26px)}
.p-pc i{position:absolute;width:36px;height:36px;background:linear-gradient(135deg,var(--cover) 50%,transparent 50%);opacity:.92}
.p-photo-in .p-pc i{background:linear-gradient(135deg,var(--sheet) 50%,transparent 50%);opacity:.9}
.p-pc i:nth-child(1){left:-4px;top:-4px}
.p-pc i:nth-child(2){right:-4px;top:-4px;rotate:90deg}
.p-pc i:nth-child(3){right:-4px;bottom:-4px;rotate:180deg}
.p-pc i:nth-child(4){left:-4px;bottom:-4px;rotate:270deg}
@media (max-width:640px){.p-photo-in img{aspect-ratio:4/3;border-radius:calc(20px*var(--tune-radius,1))}.p-pc i{width:26px;height:26px}}

/* ---------- key figures as ID fields ---------- */
.p-figs h2{margin-bottom:clamp(20px,2.4vw,32px)}
.p-figs-l{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:22px 0;padding:24px clamp(16px,2vw,24px);background:var(--sheet);border-radius:calc(20px*var(--tune-radius,1));box-shadow:0 0 0 1px var(--line)}
.p-figs-l>div{display:flex;flex-direction:column-reverse;justify-content:flex-end;gap:8px;padding:2px 20px;border-left:1.5px solid var(--line)}
.p-figs-l dt{font:400 calc(14px*var(--tune-size,1))/1.35 var(--mf);color:var(--mute)}
.p-figs-l dd{font:var(--hw) calc(calc(clamp(36px,4vw,52px) * var(--hs))*var(--tune-size,1))/1 var(--hf);letter-spacing:var(--ht)}

/* ---------- reviews: postcards ---------- */
.p-rev{background:var(--paper2)}
.p-rev h2{margin-bottom:calc(clamp(24px,3vw,40px)*var(--tune-space,1))}
.p-rev ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,2vw,28px)}
.p-rev ul.p-n1{grid-template-columns:minmax(0,820px);justify-content:center}
.p-postcard{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(18px,2.4vw,32px);padding:clamp(20px,2.4vw,32px);background:var(--sheet);border-radius:calc(6px*var(--tune-radius,1));box-shadow:0 0 0 1px var(--line),0 14px 30px -24px color-mix(in srgb,#141139 50%,transparent)}
.p-postcard blockquote p{font:500 calc(calc(clamp(19px,1.6vw,22px) * var(--hs))*var(--tune-size,1))/1.42 var(--hf);letter-spacing:-.005em}
.p-postcard em{font-style:italic;font-weight:700}
.p-pc-side{display:grid;grid-template-rows:auto 1fr auto;gap:12px;padding-left:clamp(18px,2.4vw,32px);border-left:1.5px solid var(--line);position:relative}
.p-postage{justify-self:end;display:grid;place-items:center;width:66px;height:78px;background:var(--c);color:var(--sheet);outline:3px dotted var(--sheet);outline-offset:-2px;border-radius:calc(2px*var(--tune-radius,1))}
.p-postage .p-emblem{width:36px;height:36px}
.p-postmark{position:absolute;top:22px;right:46px;width:92px;height:34px;background:var(--mute);opacity:.45;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='92' height='34'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.6'%3E%3Cpath d='M0 5c11-5 23-5 34 0s23 5 34 0 16-4 24-2'/%3E%3Cpath d='M0 13c11-5 23-5 34 0s23 5 34 0 16-4 24-2'/%3E%3Cpath d='M0 21c11-5 23-5 34 0s23 5 34 0 16-4 24-2'/%3E%3Cpath d='M0 29c11-5 23-5 34 0s23 5 34 0 16-4 24-2'/%3E%3C/g%3E%3C/svg%3E") no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='92' height='34'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.6'%3E%3Cpath d='M0 5c11-5 23-5 34 0s23 5 34 0 16-4 24-2'/%3E%3Cpath d='M0 13c11-5 23-5 34 0s23 5 34 0 16-4 24-2'/%3E%3Cpath d='M0 21c11-5 23-5 34 0s23 5 34 0 16-4 24-2'/%3E%3Cpath d='M0 29c11-5 23-5 34 0s23 5 34 0 16-4 24-2'/%3E%3C/g%3E%3C/svg%3E") no-repeat}
.p-pc-by{grid-row:3;padding-bottom:6px;border-bottom:1.5px solid var(--line);font-size:calc(16px*var(--tune-size,1));font-weight:600;line-height:1.4}
.p-pc-s{font-weight:400;color:var(--mute)}
@media (max-width:860px){.p-rev ul{grid-template-columns:minmax(0,1fr)}}
@media (max-width:560px){.p-postcard{grid-template-columns:minmax(0,1fr)}.p-pc-side{grid-template-rows:auto;grid-template-columns:1fr auto;align-items:end;padding:16px 0 0;border-left:0;border-top:1.5px solid var(--line)}.p-postage{grid-column:2;grid-row:1;width:56px;height:66px}.p-pc-by{grid-row:1;grid-column:1}.p-postmark{display:none}}

/* ---------- hours: the perforated validity strip ---------- */
.p-hours h2{margin-bottom:clamp(22px,2.6vw,36px)}
.p-valid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:var(--sheet);border-radius:calc(16px*var(--tune-radius,1));overflow:hidden;box-shadow:0 0 0 1px var(--line)}
.p-valid li{position:relative;display:grid;gap:10px;align-content:start;justify-items:center;padding:24px 8px 26px;text-align:center}
.p-valid li+li{border-left:2px dashed var(--line)}
.p-valid li+li::before,.p-valid li+li::after{content:"";position:absolute;left:-10px;translate:1px 0;width:18px;height:18px;border-radius:50%;background:var(--paper)}
.p-valid li+li::before{top:-9px}.p-valid li+li::after{bottom:-9px}
.p-valid .p-off{background:var(--paper2)}
.p-valid-d{font:var(--hw) calc(calc(22px * var(--hs))*var(--tune-size,1))/1 var(--hf);letter-spacing:var(--ht)}
.p-valid-t{display:grid;justify-items:center;gap:2px;font:400 calc(16px*var(--tune-size,1))/1.25 var(--mf);color:var(--ink)}
.p-valid-dash{color:var(--mute);line-height:.9}
.p-valid-c{color:var(--mute)}
@media (max-width:640px){
  .p-valid{grid-template-columns:minmax(0,1fr)}
  .p-valid li{grid-template-columns:1fr auto;justify-items:start;align-items:center;padding:14px 20px;text-align:left}
  .p-valid li+li{border-left:0;border-top:2px dashed var(--line)}
  .p-valid li+li::before,.p-valid li+li::after{top:-10px;bottom:auto}
  .p-valid li+li::before{left:-9px}.p-valid li+li::after{left:auto;right:-9px}
  .p-valid-t{display:flex;gap:6px}
}
.p-hours .wk ol{display:grid;gap:10px;background:var(--sheet);border-radius:calc(16px*var(--tune-radius,1));padding:20px clamp(16px,2.4vw,28px);box-shadow:0 0 0 1px var(--line)}
.p-hours .wk li{display:grid;grid-template-columns:52px minmax(0,1fr) 128px;gap:14px;align-items:center}
.p-hours .wk-n{font:var(--hw) calc(18px*var(--tune-size,1))/1 var(--hf)}
.p-hours .wk-bar{position:relative;height:16px;border-radius:calc(8px*var(--tune-radius,1));background:repeating-linear-gradient(90deg,var(--line) 0 2px,transparent 2px 8px)}
.p-hours .wk-bar i{position:absolute;top:0;bottom:0;border-radius:calc(8px*var(--tune-radius,1));background:var(--st1)}
.p-hours .wk-t{font:400 calc(15px*var(--tune-size,1))/1.2 var(--mf);text-align:right}
.p-hours .wk .off .wk-t{color:var(--mute)}
.p-hours .wk-scale{display:flex;justify-content:space-between;font:400 calc(13px*var(--tune-size,1)) var(--mf);color:var(--mute);padding:8px calc(128px + 14px + clamp(16px,2.4vw,28px)) 0 calc(52px + 14px + clamp(16px,2.4vw,28px))}
@media (max-width:560px){.p-hours .wk li{grid-template-columns:36px minmax(0,1fr) 106px;gap:10px}.p-hours .wk-t{font-size:13px;white-space:nowrap}.p-hours .wk-scale{padding-left:calc(36px + 10px + 16px);padding-right:calc(106px + 10px + 16px)}}

/* ---------- closing: the tear-off stub, or a closed passport cover ---------- */
.p-close{position:relative;overflow:hidden;background:var(--cover);color:var(--oncover)}
.p-close-stub::before{content:"";position:absolute;left:0;right:0;top:18px;border-top:2px dashed var(--covermute);opacity:.55}
.p-close-stub::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 0 18px,var(--paper) 13px,transparent 14px),radial-gradient(circle at 100% 18px,var(--paper) 13px,transparent 14px)}
.p-close-stub .p-close-in{display:grid;grid-template-columns:minmax(0,1.1fr) auto minmax(0,.9fr);gap:clamp(24px,4vw,64px);align-items:center;padding-top:calc(clamp(64px,7vw,92px)*var(--tune-space,1));padding-bottom:calc(clamp(44px,5vw,72px)*var(--tune-space,1))}
.p-close h2{font-size:calc(calc(clamp(28px,3vw,40px) * var(--hs))*var(--tune-size,1))}
.p-close-t{display:grid;gap:10px}
.p-close-t p,.p-close-cover p{color:var(--covermute)}
.p-close-c{display:grid;gap:8px;justify-items:start}
.p-close-tel{font:var(--hw) calc(clamp(32px,3.6vw,48px) * var(--hs))/1 var(--hf);letter-spacing:var(--ht);color:var(--foil);text-decoration:none;white-space:nowrap}
.p-close-tel:hover{text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:.15em}
.p-close-mail{font:400 calc(15px*var(--tune-size,1))/1.3 var(--mf);color:var(--covermute)}
.p-close-a{font-size:calc(16px*var(--tune-size,1));line-height:1.5;padding-left:20px;border-left:2px dashed color-mix(in srgb,var(--covermute) 55%,transparent)}
.p-close-cover .p-close-in{display:grid;justify-items:center;text-align:center;gap:14px;padding-block:calc(clamp(56px,7vw,96px)*var(--tune-space,1))}
.p-close-em{width:72px;height:72px;color:var(--foil);margin-bottom:6px}
.p-close-addr{font:400 calc(15px*var(--tune-size,1))/1.4 var(--mf)}
@media (max-width:900px){.p-close-stub .p-close-in{grid-template-columns:minmax(0,1fr);gap:22px}.p-close-a{padding-left:16px}}

/* ---------- footer: the machine-readable zone ---------- */
.p-foot{background:var(--cover);color:var(--oncover);padding:calc(clamp(36px,4vw,56px)*var(--tune-space,1)) 0 clamp(20px,2.4vw,32px);border-top:1px solid color-mix(in srgb,var(--covermute) 25%,transparent);font-size:calc(16px*var(--tune-size,1))}
.p-foot-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr);gap:24px 40px;align-items:start}
.p-foot-name{font:var(--hw) calc(calc(20px * var(--hs))*var(--tune-size,1))/1.2 var(--hf);margin-bottom:6px}
.p-foot-id p:not(.p-foot-name){color:var(--covermute);line-height:1.5}
.p-foot-fic{font:400 calc(13px*var(--tune-size,1))/1.4 var(--mf);margin-top:8px}
.p-foot-nav,.p-foot-legal{display:grid;gap:6px}
:where(.p-foot) a{color:inherit;text-underline-offset:.25em}
:where(.p-foot-nav,.p-foot-legal) a{text-decoration:none}
.p-foot-nav a:hover,.p-foot-legal a:hover,.p-foot a[aria-current]{text-decoration:underline}
.p-foot-end{display:grid;gap:14px;justify-items:start}
.p-foot .langs{font:400 calc(14px*var(--tune-size,1))/1 var(--mf);margin-top:0}
.p-mrz-foot{container-type:inline-size}
.p-mrz-foot span{-webkit-mask:none;mask:none;font-size:min(30px,calc(100cqw / 29));line-height:1.35}
.p-mrz-foot{margin-top:calc(clamp(28px,3.6vw,44px)*var(--tune-space,1));background:color-mix(in srgb,var(--oncover) 6%,transparent);color:var(--covermute);padding:14px clamp(12px,2vw,24px)}
@media (max-width:760px){.p-foot-grid{grid-template-columns:1fr 1fr}.p-foot-id{grid-column:1/-1}}

/* ---------- page heads, team, contact, faq, rates ---------- */
.p-ph{padding-block:calc(clamp(44px,6vw,80px)*var(--tune-space,1)) calc(clamp(32px,4vw,52px)*var(--tune-space,1));border-bottom:1.5px dashed var(--line)}
.p-ph h1{font-size:calc(calc(clamp(40px,5.2vw,70px) * var(--hs))*var(--tune-size,1));margin-bottom:14px}
.p-svc-full{padding-top:calc(clamp(28px,3vw,40px)*var(--tune-space,1))}
.p-holders{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2vw,24px)}
.p-holders.p-n1{grid-template-columns:minmax(0,520px)}
.p-holders.p-n2{grid-template-columns:repeat(2,minmax(0,1fr))}
.p-holder{display:grid;grid-template-rows:auto auto 1fr auto;gap:18px;padding:clamp(18px,2vw,24px);background:var(--sheet);border-radius:calc(20px*var(--tune-radius,1));box-shadow:0 0 0 1px var(--line),0 18px 36px -30px color-mix(in srgb,#141139 50%,transparent)}
.p-holder-top{display:flex;align-items:center;gap:10px;padding-bottom:14px;border-bottom:1.5px dashed var(--line);font:400 calc(13px*var(--tune-size,1))/1.2 var(--mf);color:var(--mute)}
.p-holder-top .p-emblem{width:22px;height:22px;color:var(--cover)}
.p-holder-b{display:grid;grid-template-columns:88px minmax(0,1fr);gap:18px;align-items:center}
.p-mono{display:grid;place-items:center;width:88px;height:110px;border-radius:calc(12px*var(--tune-radius,1));background:var(--paper2);color:var(--st1);font:var(--hw) calc(calc(52px * var(--hs))*var(--tune-size,1))/1 var(--hf);box-shadow:inset 0 0 0 1px var(--line)}
.p-holder h2{font-size:calc(calc(clamp(21px,1.8vw,24px) * var(--hs))*var(--tune-size,1));line-height:1.12}
.p-role{font:400 calc(14px*var(--tune-size,1))/1.35 var(--mf);color:var(--st1);margin-top:6px}
.p-bio{color:var(--mute);font-size:calc(16px*var(--tune-size,1));line-height:1.55}
.p-sign{padding-top:10px;border-top:1.5px solid var(--line);font:italic 400 22px/1.2 var(--tf);color:var(--st1);letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:1000px){.p-holders,.p-holders.p-n2{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.p-holders,.p-holders.p-n2{grid-template-columns:minmax(0,1fr)}}
.p-fields-team{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px;border-top:0;padding-top:0}
.p-fields-team dd{display:grid;gap:6px;font-weight:400}.p-fields-team dd b{font:var(--hw) calc(22px*var(--tune-size,1))/1.15 var(--hf)}.p-fields-team dd span{color:var(--mute);font-size:calc(16px*var(--tune-size,1))}
.p-contact{background:var(--paper2)}
.p-contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:clamp(16px,2.4vw,32px);align-items:start}
.p-contact-card .p-contact-grid{grid-template-columns:minmax(0,1fr)}
@media (min-width:861px){.p-contact-card .p-desk{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);column-gap:clamp(32px,4vw,64px);align-items:center}.p-contact-card .p-desk .p-fields{grid-column:2;grid-row:1/span 2;margin-top:0;padding-top:0;border-top:0}}
.p-desk,.p-form{background:var(--sheet);border-radius:calc(20px*var(--tune-radius,1));padding:clamp(20px,2.6vw,36px);box-shadow:0 0 0 1px var(--line)}
.p-desk{display:grid;gap:14px}
.p-desk .p-fields{grid-template-columns:1fr 1fr;margin-top:8px}
.p-desk-tel{font:var(--hw) calc(24px * var(--hs))/1.2 var(--hf);text-decoration:none;white-space:nowrap}
.p-desk a:not(.p-desk-tel){overflow-wrap:anywhere}
.p-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.p-form label{display:grid;gap:2px;padding:9px 14px 10px;border:1.5px solid var(--line);border-radius:calc(12px*var(--tune-radius,1));background:Canvas;cursor:text}
.p-form label:focus-within{border-color:var(--st1);box-shadow:0 0 0 2px color-mix(in srgb,var(--st1) 25%,transparent)}
.p-form label span{font:400 calc(13px*var(--tune-size,1))/1.3 var(--mf);color:var(--mute)}
.p-form input,.p-form textarea,.p-form select{border:0;background:transparent;font:400 calc(17px*var(--tune-size,1))/1.4 var(--tf);color:var(--ink);padding:2px 0;width:100%;min-width:0}
.p-form input:focus,.p-form textarea:focus,.p-form select:focus{outline:0}
.p-form-w{grid-column:1/-1}
.p-form-end{display:flex;align-items:end}
.p-form-end .p-btn{width:100%}
.p-small{font-size:calc(14px*var(--tune-size,1));color:var(--mute);line-height:1.5}
@media (max-width:860px){.p-contact-grid{grid-template-columns:minmax(0,1fr)}}
@media (max-width:560px){.p-form{grid-template-columns:minmax(0,1fr)}.p-desk .p-fields{grid-template-columns:minmax(0,1fr)}}
.p-legalline{padding-block:28px;font:400 calc(13px*var(--tune-size,1))/1.5 var(--mf);color:var(--mute)}
.p-rates h2,.p-faq h2{margin-bottom:clamp(18px,2.2vw,28px)}
.p-rates-l{display:grid;max-width:760px}
.p-rates-l div{display:flex;justify-content:space-between;gap:20px;padding:14px 0;border-bottom:1.5px dashed var(--line)}
.p-rates-l dd{font:400 17px/1.4 var(--mf);white-space:nowrap}
.p-faq{background:var(--paper2)}
.p-faq-l{max-width:860px;border-top:1.5px dashed var(--line)}
.p-faq details,.p-faq-l>div{border-bottom:1.5px dashed var(--line)}
.p-faq summary{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 0;cursor:pointer;list-style:none;font:700 calc(calc(19px * var(--hs))*var(--tune-size,1))/1.35 var(--hf)}
.p-faq summary::-webkit-details-marker{display:none}
.p-faq summary i{position:relative;flex:none;width:30px;height:30px;border:2px solid var(--st1);border-radius:50%}
.p-faq summary i::before,.p-faq summary i::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:2px;margin:-1px 0 0 -6px;background:var(--st1)}
.p-faq summary i::after{rotate:90deg}
.p-faq details[open] summary i::after{rotate:0deg}
.p-faq details p,.p-faq-l dd{padding:0 0 22px;color:var(--mute);max-width:70ch}
.p-faq-l dt{padding:20px 0 8px;font:700 calc(calc(19px * var(--hs))*var(--tune-size,1))/1.35 var(--hf)}
.p-gal{padding-block:0}
.p-gal .g-btn{width:56px;height:56px;background:var(--cover);color:#fff}
.p-gal .g-btn:disabled{opacity:.7;background:var(--st2)}
.p-gal .g-rl-track{--h:clamp(380px,40vw,560px)}
@media (max-width:760px){.p-gal .g-rl-track{--h:420px}}

/* ---------- hero: the open passport ----------
   The inside cover (headline, one action) on the left, the photo page on the right with the photo bled to its edges,
   photo corners inset and the entry stamp near the spine. Same size and split as the card. */
.p-hero-book{--split:46%}
.p-book{background:var(--cover)}
.p-page{position:relative;min-width:0}
.p-page-l{display:flex;flex-direction:column;justify-content:center;gap:clamp(18px,1.8vw,26px);padding:clamp(28px,3.8vw,72px);color:var(--oncover);border-radius:calc(24px*var(--tune-radius,1)) 0 0 calc(24px*var(--tune-radius,1))}
.p-page-l .p-kicker{color:var(--covermute)}
.p-page-l .p-lede{color:var(--covermute)}
.p-page-l .p-acts{display:grid;grid-template-columns:minmax(0,380px);justify-items:start;gap:14px}
.p-page-l .p-btn{width:100%;background:var(--paper);color:var(--cover);box-shadow:none}
.p-page-l .p-act-2{color:var(--oncover)}
.p-book-em{width:56px;height:56px;color:var(--foil)}
.p-page-r{border-radius:0 calc(24px*var(--tune-radius,1)) calc(24px*var(--tune-radius,1)) 0;overflow:hidden;background:var(--paper2)}
.p-page-r::before{content:"";position:absolute;top:0;bottom:0;left:0;width:40px;background:linear-gradient(90deg,rgb(10 8 30/.28),transparent);pointer-events:none;z-index:2}
.p-book-photo{position:absolute;inset:0;margin:0}
.p-book-photo img{width:100%;height:100%;object-fit:cover}
.p-book-photo .p-pc{inset:clamp(16px,2vw,28px)}
.p-book-photo .p-pc i{background:linear-gradient(135deg,var(--sheet) 50%,transparent 50%);opacity:.9}
.p-page-r .p-book-stamp{position:absolute;z-index:3;--sz:128px;left:clamp(56px,5vw,84px);bottom:clamp(56px,6vw,96px);rotate:0deg;background:color-mix(in srgb,var(--sheet) 86%,transparent)}
@media (max-width:900px){
  .p-hero-book .p-page-r{order:-1;height:auto;aspect-ratio:4/3;border-radius:calc(20px*var(--tune-radius,1)) calc(20px*var(--tune-radius,1)) 0 0}
  .p-hero-book .p-page-l{border-radius:0 0 calc(20px*var(--tune-radius,1)) calc(20px*var(--tune-radius,1))}
  .p-page-r::before{display:none}
  .p-page-l{padding:22px 20px 24px;gap:14px}
  .p-page-l .p-acts{grid-template-columns:minmax(0,1fr)}
  .p-book-em{display:none}
  .p-page-r .p-book-stamp{--sz:96px;left:auto;right:18px;bottom:18px;padding:10px 12px;outline-offset:-6px;gap:3px}
  /* the 96px stamp's small print is already at its fullest: it may shrink with the text size, never grow (a larger
     line would crowd the frame, and on the tilt it reads as a word broken over two lines) */
  .p-page-r .p-book-stamp .p-stamp-s{font-size:calc(10px * min(var(--tune-size,1),1))}
  .p-page-r .p-book-stamp .p-stamp-b{font-size:calc(calc(24px * var(--hs))*var(--tune-size,1))}
  .p-book-photo .p-pc{inset:14px}.p-book-photo .p-pc i{width:24px;height:24px}
}

/* ---------- legal pages and 404 ---------- */
.p-legal{max-width:860px;padding-block:calc(clamp(40px,5vw,72px)*var(--tune-space,1))}
.p-legal h1{font-size:calc(calc(clamp(34px,4vw,52px) * var(--hs))*var(--tune-size,1));margin-bottom:20px}
.p-legal h2{font-size:calc(calc(clamp(22px,2vw,28px) * var(--hs))*var(--tune-size,1));margin:32px 0 10px}
.p-legal p,.p-legal li{margin-bottom:10px;font-size:calc(17px*var(--tune-size,1))}
.p-legal ul{list-style:disc;padding-left:22px}
.p-legal .legal-lang,.p-legal [role=note]{padding:12px 16px;border:1.5px dashed var(--line);border-radius:calc(10px*var(--tune-radius,1));font-size:calc(15px*var(--tune-size,1));margin-bottom:20px}
.nf{display:grid;gap:18px;padding-block:calc(clamp(56px,8vw,112px)*var(--tune-space,1))}
.nf h1{font-size:calc(calc(clamp(40px,5vw,64px) * var(--hs))*var(--tune-size,1))}
.nf ul{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px}
.nf .btn{display:inline-flex;align-items:center;min-height:52px;padding:0 22px;border-radius:calc(12px*var(--tune-radius,1));background:var(--act);color:var(--onact);font-weight:700;text-decoration:none}

/* ---------- motion (hover devices; Basic and Advanced) ---------- */
@media (hover:hover) and (prefers-reduced-motion:no-preference){
  .p-slot .p-stamp{transition:rotate .3s cubic-bezier(.3,1,.5,1),scale .3s cubic-bezier(.3,1,.5,1)}
  .p-slot:hover .p-stamp{rotate:0deg;scale:1.03}
  .p-slot-lead img{transition:scale .6s cubic-bezier(.2,.7,.2,1)}

  .p-postcard{transition:translate .3s,rotate .3s}
  .p-postcard:hover{translate:0 -3px;rotate:0deg}
}

/* ---------- Advanced hero moment: "the issue" ----------
   card: the ID card is laid down flat from a slight tilt, the portrait develops, a hologram sheen sweeps across and
   the stamp thumps down last. booklet: the photo page turns over on the spine and
   the entry stamp lands. The pointer then tilts the card (data-tilt) and drifts the seal (data-depth). On scroll,
   the services' stamps thump into their slots. Transform and opacity only; reduced motion: the still page. */
@media (prefers-reduced-motion:no-preference){
  .m-js .p-hero-card .p-card{animation:p-issue .9s cubic-bezier(.2,.75,.2,1) backwards}
  .m-js .p-hero-card .p-idphoto img{animation:p-develop 1s .25s cubic-bezier(.3,.7,.3,1) backwards}
  .m-js .p-hero-card .p-seal{animation:p-seal .8s .7s cubic-bezier(.3,1,.5,1) backwards}
  .m-js .p-hero-card .p-sheen::before{animation:p-sheen 1s .8s ease-in-out}
  .m-js .p-hero-card .p-card-stamp,.m-js .p-hero-book .p-book-stamp{animation:p-thump .42s 1.2s cubic-bezier(.3,1,.5,1) backwards}
  .m-js .p-hero-book .p-page-r{transform-origin:0 50%;animation:p-turn 1.05s .15s cubic-bezier(.25,.75,.2,1) backwards}
  .m-js .p-hero-book .p-book-em{animation:p-seal .8s .5s cubic-bezier(.3,1,.5,1) backwards}
  .m-js .p-slots.m-in .p-stamp{animation:p-thump .4s cubic-bezier(.3,1,.5,1) backwards}
  .m-js .p-slots.m-in .p-slot:nth-child(2) .p-stamp{animation-delay:.08s}
  .m-js .p-slots.m-in .p-slot:nth-child(3) .p-stamp{animation-delay:.16s}
  .m-js .p-slots.m-in .p-slot:nth-child(4) .p-stamp{animation-delay:.24s}
  .m-js .p-slots.m-in .p-slot:nth-child(5) .p-stamp{animation-delay:.32s}
  .m-js .p-slots.m-in .p-slot:nth-child(6) .p-stamp{animation-delay:.4s}
  @keyframes p-issue{from{opacity:0;transform:perspective(1600px) rotateX(5deg) translateY(28px) scale(.985)}}
  @keyframes p-develop{from{opacity:0;transform:scale(1.06)}}
  @keyframes p-seal{from{opacity:0;transform:rotate(-120deg) scale(.5)}}
  @keyframes p-sheen{0%{opacity:0;transform:translateX(0) skewX(-14deg)}25%{opacity:1}100%{opacity:0;transform:translateX(480%) skewX(-14deg)}}
  @keyframes p-thump{0%{opacity:0;transform:scale(1.8)}70%{opacity:1;transform:scale(.96)}100%{opacity:1;transform:scale(1)}}
  @keyframes p-turn{from{opacity:0;transform:perspective(2000px) rotateY(-60deg)}}
}
.p-gal .g-title{font-weight:var(--hw);letter-spacing:var(--ht)}
