/* Official public brand assets, scoped to the three product studies.
   Evidence and exact URLs: docs/brand-typography-sources.json. */
@font-face{font-family:'All Together Sans';src:url('/assets/fonts/brands/AllTogetherSans-Regular.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'All Together Sans';src:url('/assets/fonts/brands/AllTogetherSans-Bold.woff2') format('woff2');font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:'All Together Serif';src:url('/assets/fonts/brands/AllTogetherSerif-Bold.woff2') format('woff2');font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:'All Together Serif';src:url('/assets/fonts/brands/AllTogetherSerif-Black.woff2') format('woff2');font-style:normal;font-weight:900;font-display:swap}
@font-face{font-family:'Amsterdam Sans';src:url('/assets/fonts/brands/AmsterdamSans-Regular.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'Amsterdam Sans';src:url('/assets/fonts/brands/AmsterdamSans-Bold.woff2') format('woff2');font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:'Booking Blue Sans';src:url('/assets/fonts/brands/BookingBold.woff') format('woff');font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:'Booking Blue Sans';src:url('/assets/fonts/brands/BookingExtraBold.woff') format('woff');font-style:normal;font-weight:800;font-display:swap}

/* Booking traveller theme: Blue Sans display / native system UI, 4px controls,
   8px cards, brand blue and action blue with independent semantic roles. */
.booking-ui{font-family:BlinkMacSystemFont,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;color:#1a1a1a;--product-accent:#006ce4;--product-muted:#595959;--product-border:#e7e7e7;--product-soft:#f5f5f5;--booking-brand:#003b95;--booking-heading:'Booking Blue Sans',Arial,sans-serif}
.booking-ui h2,.booking-ui h3,.booking-ui h4{font-family:var(--booking-heading);font-weight:700;letter-spacing:0;line-height:1.3}
.booking-ui h2{font-weight:800;font-size:3em;line-height:1.08;max-width:17em}
.booking-ui .pu-content{padding:2.3em 3.1em 3em}
.booking-ui .pu-topbar{height:5.7em;gap:2em}
.booking-ui .pu-navigation{align-self:center;gap:.6em;font-size:.86em}
.booking-ui .pu-navigation>span{padding:.8em 1.1em;border:1px solid transparent;border-radius:99em;font-weight:400}
.booking-ui .pu-navigation>.selected{border-color:white;background:#ffffff13}
.booking-ui .pu-navigation>.selected:after{display:none}
.booking-ui .pu-header-actions{gap:1.3em}
.booking-ui .pu-avatar{background:#ffb700;color:#1a1a1a;border:2px solid white}
.booking-ui .pu-breadcrumb{font-size:.78em;color:#006ce4;margin-bottom:1.8em}
.booking-ui .booking-location{display:flex;align-items:center;gap:.5em;font-size:.8em;font-weight:600;letter-spacing:0;color:#595959;margin-bottom:.75em}
.booking-ui .pu-page-heading{align-items:flex-end;margin-bottom:2.2em}
.booking-ui .pu-page-heading p{max-width:34em;margin-top:.8em;font-size:1em;line-height:1.55}
.booking-ui .pu-save{padding:.8em 1em;border:1px solid #006ce4;border-radius:.2857em;font-weight:500;font-size:.85em}
.booking-ui .booking-feature{grid-template-columns:1.12fr 1fr;border-radius:.57em;border-color:#d9d9d9;box-shadow:0 .25em 1.5em #1a1a1a06}
.booking-ui .booking-ar{min-height:27em}
.booking-ui .booking-ar>img{object-position:center 48%}
.booking-ui .booking-ar-label{font-size:.8em;background:#fff;box-shadow:0 .2em .7em #0000000d;border-radius:.28em}
.booking-ui .booking-ar-target{background:#003b95f2;border:1px solid #ffffff60;box-shadow:0 .25em 1em #001b4240}
.booking-ui .booking-feature-info{padding:2.1em}
.booking-feature-kicker{display:flex;align-items:center;gap:.75em;flex-wrap:wrap}
.booking-feature-kicker>span:last-child{color:#595959;font-size:.72em;display:flex;align-items:center;gap:.4em}
.booking-ui .pu-tag.blue{background:#f0f6ff;color:#003b95;border:1px solid #c8defb;border-radius:.25em;font-weight:500}
.booking-ui .booking-feature-info h3{font-size:2em;line-height:1.2;margin:.8em 0 .15em}
.booking-ui .booking-feature-info>p{font-size:.94em;line-height:1.55}
.booking-ui .booking-meta{color:#595959;font-size:.85em;gap:.7em;margin:1.6em 0}
.booking-ui .pu-button{border-radius:.2857em;font-size:1em;font-weight:600;min-height:3em;padding:.8em 1em;gap:1.2em}
.booking-ui .booking-helper{font-size:.73em;line-height:1.55;color:#595959}
.booking-guide-summary{display:flex;justify-content:space-between;gap:1.5em;margin-top:1.5em;padding:1.1em 1.4em;border-radius:.2857em;background:#f5f5f5;font-size:.8em;color:#595959}
.booking-guide-summary>span{display:flex;gap:.6em;align-items:center}
.booking-guide-summary .pu-icon{color:#003b95}
.booking-ui .pu-tabs{gap:2em;margin:2em 0;border-bottom-color:#d9d9d9}
.booking-ui .pu-tabs>.selected{font-weight:600;border-bottom-width:2px}
.booking-ui .pu-section-line h3{font-size:1.7em}
.booking-ui .booking-highlight{border-radius:.57em;padding:1.5em}
.booking-ui .booking-highlight>.pu-icon{border-radius:.3em;background:#f0f6ff;padding:.55em;width:3.2em;height:3.2em;margin-bottom:1.2em}
.booking-ui .booking-highlight>strong{font-family:var(--booking-heading);font-weight:700;letter-spacing:0;line-height:1.35}
.booking-ui .booking-highlight small{color:#595959;font-size:.75em}
.booking-ui .booking-highlight p{font-size:.85em;line-height:1.55}
.booking-ui .booking-route-info{color:#595959;gap:1em}
.booking-ui .geographic-map{border-radius:.57em}

/* I amsterdam tourism site: Amsterdam Sans, red identity, blue actions.
   Normal tracking and sentence case follow the brand typography guidance. */
.city-ui{font-family:'Amsterdam Sans',Arial,sans-serif;color:#000;--product-accent:#0c65d5;--product-muted:#4d4d4d;--product-border:#d9d9d9;--product-soft:#f7f7f7;--city-red:#ff0018}
.city-ui h2,.city-ui h3,.city-ui h4{font-family:'Amsterdam Sans',Arial,sans-serif;font-weight:700;letter-spacing:0;line-height:1.2}
.city-ui h2{line-height:1.1}
.city-ui .pu-topbar{height:5.9em;gap:2em;border-color:#e8e8e8}
.city-ui .product-logo.logo-citycard{height:1.55em!important;max-width:14em}
.city-ui .pu-navigation{gap:1.8em;font-size:.9em}
.city-ui .pu-navigation>.selected{color:#000}
.city-ui .pu-navigation>.selected:after{height:3px;background:#ff0018;bottom:1.45em}
.city-ui .pu-header-actions{gap:1.2em}
.city-ui .pu-avatar{background:#f7f7f7;color:#000;border:1px solid #d9d9d9}
.city-ui .pu-eyebrow{letter-spacing:0;font-size:.85em;font-weight:400;color:#666}
.city-ui .city-welcome{height:26em;grid-template-columns:1.1fr 1fr;background:#fff;border-bottom:1px solid #e8e8e8}
.city-ui .city-welcome>div{padding:2.8em 2.8em 2.8em 3.1em;display:flex;flex-direction:column;justify-content:center}
.city-ui .city-welcome h2{font-size:3.15em;color:#ff0018;line-height:1.1}
.city-ui .city-welcome h2>span{color:#000}
.city-ui .city-welcome p{font-size:1.05em;line-height:1.5;margin-top:1em;color:#4d4d4d}
.city-ui .city-welcome>img{height:calc(100% - 3em);margin:1.5em 1.5em 1.5em 0;width:calc(100% - 1.5em);border-radius:.57em}
.city-ui .city-photo-caption{right:3.4em;bottom:3.3em;background:#0009;font-size:.65em}
.city-ui .city-search{font-size:.9em;padding:1em 1.15em;border-color:#bfbfbf;border-radius:.35em;line-height:1.4;gap:.8em;margin-top:1.7em}
.city-ui .city-search>.pu-icon:last-child{color:#0c65d5}
.city-ui .pu-section-line h3{font-size:1.8em;line-height:1.2}
.city-ui .pu-section-line>span{font-weight:700}
.city-ui .pu-section-line p{font-size:1em;color:#4d4d4d}
.city-ui .city-interests{display:flex;flex-wrap:wrap;gap:.65em}
.city-ui .city-interests>span{padding:.8em 1.1em;gap:.6em;border-radius:99em;font-size:.86em;background:white;border-color:#bfbfbf;line-height:1.35}
.city-ui .city-interests>.selected{color:#0c65d5;border-color:#0c65d5;background:#f0f6ff;font-weight:700}
.city-ui .city-attraction{border-radius:.57em;border:1px solid #d9d9d9;background:white}
.city-ui .city-attraction>div:first-child{height:16em}
.city-ui .city-save{width:2.7em;height:2.7em;top:.8em;right:.8em;color:#000;border:1px solid #0000000d;box-shadow:0 .2em .5em #00000014}
.city-ui .city-attraction-info{padding:1.5em}
.city-ui .city-attraction-info .pu-eyebrow{font-size:.8em;margin-bottom:.5em;color:#666}
.city-ui .city-attraction-info h4{font-size:1.5em;line-height:1.35}
.city-ui .city-attraction-info p{font-size:.9em;line-height:1.5}
.city-ui .city-attraction-bottom{padding-top:1.1em;margin-top:1.2em;border-top:1px solid #eee}
.city-ui .city-attraction-bottom>span:last-child{color:#0c65d5;font-weight:700}
.city-ui .city-attraction-bottom .pu-tag{color:#000;background:#f7f7f7;border:1px solid #d9d9d9;font-weight:400;border-radius:.35em}
.city-ui .city-plan-row{background:#f7f7f7;border-color:#e8e8e8;border-radius:.57em;padding:1.7em}
.city-ui .city-plan-row>div>.pu-icon{color:#ff0018}
.city-ui .pu-button{border-radius:99em;min-height:3.5em;padding:.9em 1.5em;gap:1.5em;font-weight:700;font-size:1em}
.city-ui .pu-button.secondary{background:#0c65d5;color:#fff;border-color:#0c65d5}
.city-ui .city-plan-row .pu-button{font-size:.9em}
.city-ui .city-card-note{background:#ff0018;border-radius:.57em;padding:2em}
.city-ui .city-card-note strong{font-size:1.6em;line-height:1.2;display:block}
.city-ui .city-card-note p{font-size:.9em;line-height:1.5}
.city-ui .city-map-result{border-color:#d9d9d9;border-radius:.57em}
.city-ui .city-map-result>img{object-fit:cover}
.city-ui .pu-bottom-nav{color:#666}
.city-ui .pu-bottom-nav>.selected{color:#0c65d5}

/* M&M's: the custom All Together pair is central to the brand identity.
   Serif display and CTA, functional Sans, warm chocolate and brand yellow. */
.crunchy-ui{font-family:'All Together Sans',Arial,sans-serif;color:#5a1f06;background:#fff;--product-accent:#5a1f06;--product-muted:#6b4535;--product-border:#e7dcd6;--product-soft:#faf6f1;--mms-yellow:#ffd200}
.crunchy-ui h2,.crunchy-ui h3,.crunchy-ui h4{font-family:'All Together Serif',Georgia,serif;font-weight:700;letter-spacing:0;line-height:1.15}
.crunchy-ui p{line-height:1.65}
.crunchy-ui .pu-topbar{background:#ffd200;border-color:#e7be00;height:6em;gap:2em}
.crunchy-ui .product-logo.logo-crunchy{height:2.6em!important}
.crunchy-ui .pu-navigation{align-self:center;gap:.5em;font-size:.9em;font-weight:700}
.crunchy-ui .pu-navigation>span{border:1px solid transparent;padding:.65em 1.2em;border-radius:99em}
.crunchy-ui .pu-navigation>.selected{background:#ffffff60;border-color:#5a1f06}
.crunchy-ui .pu-navigation>.selected:after{display:none}
.crunchy-ui .pu-header-actions{gap:1.3em}
.crunchy-ui .pu-avatar{background:#5a1f06;color:#fff}
.crunchy-ui .crunchy-campaign{grid-template-columns:1fr 1.12fr;height:29em;background:#ffd200;border-bottom:1px solid #ead38a}
.crunchy-ui .crunchy-campaign>img{height:29em;object-fit:cover;object-position:center;background:#eab331}
.crunchy-ui .crunchy-campaign-copy{padding:2.5em 2.5em 3em 3.1em;background:#ffd200}
.crunchy-ui .crunchy-campaign-copy h2{font-size:2.85em;font-weight:900;letter-spacing:-.015em;line-height:1.08;margin:.18em 0 .25em;max-width:none}
.crunchy-ui .crunchy-campaign-copy p{font-size:1em;color:#5a1f06;max-width:21em;line-height:1.6;margin-top:.6em}
.crunchy-ui .pu-eyebrow{font-family:'All Together Sans',Arial,sans-serif;font-size:.75em;font-weight:700;letter-spacing:.015em;color:#6b4535}
.crunchy-ui .crunchy-campaign-eyebrow{color:#5a1f06;display:flex;align-items:center;gap:.55em;font-size:.9em}
.crunchy-ui .pu-button{font-family:'All Together Serif',Georgia,serif;font-weight:700;border-radius:99em;padding:1.1em 1.8em;font-size:1.05em;min-height:3.5em;line-height:1.25;gap:1.5em;background:#5a1f06}
.crunchy-ui .crunchy-campaign-copy .pu-button{margin-top:1.5em}
.crunchy-ui .crunchy-world-tag{background:#fff;color:#5a1f06;font-size:.7em;padding:.8em 1.1em;right:1.4em;bottom:1.4em;box-shadow:0 .2em .6em #5a1f0614}
.crunchy-ui .pu-content{padding:3.1em}
.crunchy-ui .crunchy-wallet-heading h3{font-size:2.5em;font-weight:700;line-height:1.15}
.crunchy-ui .crunchy-wallet-heading p{font-size:1em;margin-top:.7em}
.crunchy-ui .crunchy-wallet-heading>.pu-icon{width:3em;height:3em;color:#5a1f06}
.crunchy-ui .crunchy-wallet{grid-template-columns:.9fr 1.3fr;border:1px solid #e7dcd6;border-radius:.714em;box-shadow:0 .4em 1.8em #5a1f0606;margin-top:1.8em}
.crunchy-ui .crunchy-balance{background:#ffd200;padding:1.8em 2em}
.crunchy-ui .crunchy-balance>span:first-child{font-size:.85em;font-weight:700}
.crunchy-ui .crunchy-balance>strong{font-family:'All Together Sans',Arial,sans-serif;font-weight:700;font-size:4.8em;line-height:1.25;letter-spacing:-.03em;margin:.05em 0}
.crunchy-ui .crunchy-balance>strong>small{font-size:.2em;letter-spacing:0}
.crunchy-ui .crunchy-sync{color:#5a1f06;font-size:.78em}
.crunchy-ui .crunchy-sync>.pu-icon{background:#5a1f06;color:#ffd200;border-radius:50%;padding:.15em;width:1.5em;height:1.5em}
.crunchy-ui .crunchy-progress{padding:2em}
.crunchy-ui .crunchy-reward-label{font-size:.75em;letter-spacing:0;margin:0 0 1.3em;color:#6b4535;display:flex;align-items:center;gap:.6em;font-weight:400}
.crunchy-ui .crunchy-progress .pu-row{font-size:1em;font-variant-numeric:tabular-nums}
.crunchy-ui .crunchy-progress .pu-row>span{font-size:.85em}
.crunchy-ui .crunchy-meter{height:.65em;background:#f1e9e3;margin:1.3em 0 .4em}
.crunchy-ui .crunchy-meter>i{background:#5a1f06}
.crunchy-ui .crunchy-progress>p{font-size:.85em;color:#6b4535}
.crunchy-ui .crunchy-progress>span:last-child{font-size:.9em;margin-top:1.3em;color:#5a1f06;text-decoration:underline;text-underline-offset:.25em}
.crunchy-ui .pu-section-line h3{font-size:1.9em;line-height:1.2}
.crunchy-ui .pu-section-line>span{font-weight:700;font-size:.8em}
.crunchy-ui .crunchy-steps{gap:1.2em}
.crunchy-ui .crunchy-steps>div{padding:1.6em;background:#faf6f1;border:1px solid #eee5de;border-radius:.714em}
.crunchy-ui .crunchy-step-icon{background:#ffd200;color:#5a1f06;border-radius:50%;width:3.3em;height:3.3em}
.crunchy-ui .crunchy-steps h4{font-size:1.35em;line-height:1.3;margin-top:.5em}
.crunchy-ui .crunchy-steps p{font-size:.87em;color:#6b4535}
.crunchy-ui .crunchy-steps small{color:#6b4535}
.crunchy-ui .crunchy-reward-card{padding:1.8em;border-color:#e7dcd6;border-radius:.714em;gap:2.5em}
.crunchy-ui .crunchy-reward-art{background:#ffd200;border-radius:.5em;min-height:23em}
.crunchy-ui .crunchy-reward-art>strong{font-family:'All Together Serif',Georgia,serif;font-size:3em;line-height:1.02;letter-spacing:-.015em;font-weight:900;transform:none;max-width:7em;margin:.6em 0}
.crunchy-ui .crunchy-reward-art>span{letter-spacing:.02em;font-weight:700;font-size:.65em;color:#5a1f06}
.crunchy-ui .crunchy-reward-card h3{font-size:2.3em;line-height:1.1}
.crunchy-ui .crunchy-reward-card p{font-size:.9em}
.crunchy-ui .crunchy-reward-card .pu-row{font-size:.9em;border-color:#e7dcd6;padding:.9em 0}
.crunchy-ui .pu-tag.amber{background:#fff3b7;color:#5a1f06;border-radius:99em;font-weight:700;padding:.45em .8em}
.crunchy-ui .crunchy-muted-action{font-family:'All Together Serif',Georgia,serif;background:#f0ece8;border-color:#e7dcd6;color:#6b4535;line-height:1.4;font-size:.9em}
.crunchy-ui .crunchy-activity-row{border-color:#e7dcd6;padding:1.3em 0;font-size:1em}
.crunchy-ui .crunchy-activity-row>.pu-icon{background:#faf6f1;color:#5a1f06;width:2.8em;height:2.8em}
.crunchy-ui .crunchy-activity-row small{color:#6b4535;font-size:.8em}
.crunchy-ui .crunchy-activity-row>b{color:#005e20;font-size:.9em;font-variant-numeric:tabular-nums}
.crunchy-ui .crunchy-legal{color:#6b4535;font-size:.75em}
.crunchy-ui .pu-bottom-nav{color:#6b4535;border-color:#e7dcd6}
.crunchy-ui .pu-bottom-nav>.selected .pu-icon{background:#ffd200;box-shadow:0 0 0 .4em #ffd200;border-radius:.2em}

/* Mobile is independently composed; headings stay legible in phone frames. */
.is-mobile .booking-ui .pu-topbar,.is-mobile .city-ui .pu-topbar,.is-mobile .crunchy-ui .pu-topbar{height:5.8em;padding:1.3em 1.4em 0}
.is-mobile .booking-ui .pu-content,.is-mobile .city-ui .pu-content,.is-mobile .crunchy-ui .pu-content{padding:1.8em 1.4em 2.2em}
.is-mobile .booking-ui h2{font-size:2.55em;line-height:1.12}
.is-mobile .booking-ui .pu-page-heading p{font-size:.95em;line-height:1.5}
.is-mobile .booking-ui .booking-location{font-size:.75em}
.is-mobile .booking-ui .booking-ar{min-height:23em}
.is-mobile .booking-ui .booking-feature-info{padding:1.6em}
.is-mobile .booking-ui .booking-feature-info h3{font-size:1.85em}
.is-mobile .booking-ui .booking-guide-summary{flex-wrap:wrap;gap:.85em 1.4em;font-size:.75em;padding:1.2em}
.is-mobile .booking-ui .booking-guide-summary>span:last-child{flex-basis:100%}
.is-mobile .booking-ui .pu-tabs{gap:1.3em}
.is-mobile .booking-ui .pu-section-line h3{font-size:1.6em}
.is-mobile .booking-ui .booking-highlight{padding:1.35em}
.is-mobile .city-ui .product-logo.logo-citycard{height:1.5em!important;max-width:14em}
.is-mobile .city-ui .city-welcome{height:auto;display:flex;flex-direction:column;padding-bottom:1.4em}
.is-mobile .city-ui .city-welcome>div{padding:2em 1.4em 1.5em}
.is-mobile .city-ui .city-welcome h2{font-size:2.8em;line-height:1.1}
.is-mobile .city-ui .city-welcome>img{width:calc(100% - 2.8em);margin:0 1.4em;height:17em;border-radius:.57em}
.is-mobile .city-ui .city-photo-caption{bottom:3em;right:3em;font-size:.65em}
.is-mobile .city-ui .city-search{font-size:.88em;margin-top:1.5em}
.is-mobile .city-ui .pu-section-line h3{font-size:1.7em}
.is-mobile .city-ui .city-interests{gap:.7em}
.is-mobile .city-ui .city-interests>span{font-size:.85em;padding:.8em 1em}
.is-mobile .city-ui .city-attraction>div:first-child{height:18em}
.is-mobile .city-ui .city-attraction-info{padding:1.4em}
.is-mobile .city-ui .city-plan-row{padding:1.5em}
.is-mobile .city-ui .city-card-note{padding:1.6em;gap:1em;align-items:flex-start}
.is-mobile .city-ui .city-card-note strong{font-size:1.45em}
.is-mobile .crunchy-ui .crunchy-campaign-copy{order:0;padding:2.1em 1.4em 2em}
.is-mobile .crunchy-ui .crunchy-campaign{height:auto}
.is-mobile .crunchy-ui .crunchy-campaign-copy h2{font-size:2.65em;line-height:1.1;max-width:none}
.is-mobile .crunchy-desktop-break{display:none}
.is-mobile .crunchy-ui .crunchy-campaign>img{order:1;height:auto;aspect-ratio:1.35;object-fit:cover;object-position:center}
.is-mobile .crunchy-ui .crunchy-world-tag{top:auto;bottom:1.2em;right:1.2em;font-size:.65em}
.is-mobile .crunchy-ui .crunchy-campaign-copy p{max-width:24em;font-size:1em}
.is-mobile .crunchy-ui .crunchy-campaign-copy .pu-button{margin-top:1.3em;font-size:1em}
.is-mobile .crunchy-ui .crunchy-wallet-heading h3{font-size:2.3em}
.is-mobile .crunchy-ui .crunchy-wallet-heading p{font-size:.95em}
.is-mobile .crunchy-ui .crunchy-wallet{grid-template-columns:1fr}
.is-mobile .crunchy-ui .crunchy-balance{padding:1.6em 1.8em}
.is-mobile .crunchy-ui .crunchy-balance>strong{font-size:4.6em}
.is-mobile .crunchy-ui .crunchy-progress{padding:1.8em}
.is-mobile .crunchy-ui .pu-section-line h3{font-size:1.7em}
.is-mobile .crunchy-ui .crunchy-steps>div{padding:1.3em 1.3em 1.3em 5.4em}
.is-mobile .crunchy-ui .crunchy-step-icon{left:1.2em;top:1.3em;width:3em;height:3em}
.is-mobile .crunchy-ui .crunchy-steps h4{margin-top:0;font-size:1.3em}
.is-mobile .crunchy-ui .crunchy-reward-card{padding:1.4em;gap:1.6em}
.is-mobile .crunchy-ui .crunchy-reward-card h3{font-size:2.25em}
.is-mobile .crunchy-ui .crunchy-reward-art{min-height:23em}
