/* base (all widths); tablet and mobile blocks hold only their overrides */
.pg_1{padding:64px 48px 56px;background:#fafaf2;border-bottom:1px solid rgba(31,34,28,.18);display:grid;grid-template-columns:1fr 300px;gap:48px;align-items:center;padding-left:max(48px,calc((100% - 1104px)/2));padding-right:max(48px,calc((100% - 1104px)/2))}.pg_2{font-family:'Spline Sans Mono',monospace;font-size:12px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:#5a5e4e;margin-bottom:28px}.pg_3{color:#6d5b2a;margin:0 8px}.pg_4{color:#6d5b2a;margin:0 8px}.pg_5{color:#1f221c}.pg_6{font-family:'Spline Sans Mono',monospace;font-size:12px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:#6d5b2a;margin-bottom:18px}.pg_7{font-size:46px;max-width:760px}.pg_8{display:flex;align-items:center;justify-content:center;border:1px solid rgba(31,34,28,.18);border-radius:16px;padding:40px 28px;min-height:160px}.pg_9{max-height:90px}.pg_10{padding:96px 48px;padding-left:max(48px,calc((100% - 1104px)/2));padding-right:max(48px,calc((100% - 1104px)/2))}.pg_11{font-family:'Spline Sans Mono',monospace;font-size:12px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:#6d5b2a;margin-bottom:18px}.pg_12{font-size:44px;margin-bottom:18px}.pg_13{font-size:16px;line-height:1.65;color:#5a5e4e;max-width:760px;margin-bottom:40px}.pg_14{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.pg_15{border:1px solid rgba(31,34,28,.18);border-top:3px solid #a98d4b;background:#fafaf2;border-radius:6px;padding:26px 24px;display:flex;flex-direction:column;gap:10px}.pg_16{font-size:20px}.pg_17{font-size:14px;color:#5a5e4e;line-height:1.55}.pg_18{border:1px solid rgba(31,34,28,.18);border-top:3px solid #a98d4b;background:#fafaf2;border-radius:6px;padding:26px 24px;display:flex;flex-direction:column;gap:10px}.pg_19{font-size:20px}.pg_20{font-size:14px;color:#5a5e4e;line-height:1.55}.pg_21{border:1px solid rgba(31,34,28,.18);border-top:3px solid #a98d4b;background:#fafaf2;border-radius:6px;padding:26px 24px;display:flex;flex-direction:column;gap:10px}.pg_22{font-size:20px}.pg_23{font-size:14px;color:#5a5e4e;line-height:1.55}.pg_24{border:1px solid rgba(31,34,28,.18);border-top:3px solid #a98d4b;background:#fafaf2;border-radius:6px;padding:26px 24px;display:flex;flex-direction:column;gap:10px}.pg_25{font-size:20px}.pg_26{font-size:14px;color:#5a5e4e;line-height:1.55}.pg_27{padding:0 48px 96px;display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start;padding-left:max(48px,calc((100% - 1104px)/2));padding-right:max(48px,calc((100% - 1104px)/2))}.pg_28{font-family:'Spline Sans Mono',monospace;font-size:12px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:#6d5b2a;margin-bottom:18px}.pg_29{font-size:36px;margin-bottom:18px}.pg_30{font-size:16px;line-height:1.65;color:#5a5e4e}.pg_31{background:#1d2b22;color:#f2f1e6;border-radius:16px;padding:36px 38px}.pg_32{font-size:13.5px;line-height:1.6;color:rgba(242,241,230,.68);margin-bottom:28px}.pg_33{display:inline-flex;background:#c9b68a;color:#1f221c;border-radius:999px;padding:16px 36px;font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}.pg_34{padding:0 48px 80px;padding-left:max(48px,calc((100% - 1104px)/2));padding-right:max(48px,calc((100% - 1104px)/2))}.pg_35{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.pg_36{font-family:'Spline Sans Mono',monospace;font-size:12px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:#6d5b2a}.pg_37{font-size:12px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;border-bottom:1px solid #a98d4b;padding-bottom:3px}.pg_38{display:grid;grid-template-columns:repeat(5,1fr);gap:2px;border:1px solid rgba(31,34,28,.18);border-radius:14px;overflow:hidden;background:rgba(31,34,28,.09)}
@media (min-width:600px) and (max-width:899px){.pg_1{padding:42px 31px 36px;grid-template-columns:1fr;gap:31px}.pg_7{font-size:38px}.pg_8{padding:26px 28px}.pg_10{padding:62px 31px}.pg_12{font-size:37px}.pg_13{margin-bottom:26px}.pg_14{grid-template-columns:repeat(2,minmax(0,1fr))}.pg_27{padding:0 31px 62px;grid-template-columns:1fr;gap:31px}.pg_29{font-size:31px}.pg_34{padding:0 31px 52px}.pg_38{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:599px){.pg_1{padding:27px 20px 24px;grid-template-columns:1fr;gap:20px}.pg_2{margin-bottom:20px}.pg_7{font-size:31px}.pg_8{padding:18px 20px}.pg_10{padding:40px 20px}.pg_12{font-size:30px}.pg_13{margin-bottom:18px}.pg_14{grid-template-columns:1fr}.pg_15{padding:18px 24px}.pg_18{padding:18px 24px}.pg_21{padding:18px 24px}.pg_24{padding:18px 24px}.pg_27{padding:0 20px 40px;grid-template-columns:1fr;gap:20px}.pg_29{font-size:26px}.pg_31{padding:25px 27px}.pg_32{margin-bottom:20px}.pg_33{padding:16px 25px}.pg_34{padding:0 20px 34px}.pg_35{flex-wrap:wrap}.pg_38{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* shared fixes for ported inner pages.
   The old :has() rule forced three columns on every program-logo grid
   below 600px, including the programs hub, where it overrode the
   one-column layout and let long titles paint past the card. */
@media (max-width:899px){
  /* two-column logo strip: with an odd tile count the last one spans the row instead of leaving a blank cell */
  .pg_38 > a:nth-child(odd):last-child{grid-column:span 2}
}
.ph-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#fafaf2;border:1px solid rgba(31,34,28,.18);margin-top:36px}
.ph-card{display:flex;flex-direction:column;gap:8px;background:#fafaf2;box-shadow:0 0 0 1px rgba(31,34,28,.18);padding:26px 22px;min-height:180px;color:#1f221c;text-decoration:none}
.ph-card:hover{background:#f2f1e9}
.ph-card img{max-width:min(130px,100%);max-height:44px;height:auto;object-fit:contain;object-position:left center;margin-bottom:10px}
.ph-name{font-family:'Bodoni Moda',serif;font-size:21px;min-width:0;max-width:100%;overflow-wrap:break-word;font-optical-sizing:none;font-variation-settings:"opsz" 12,"wght" 480}
.ph-sub{font-size:14px;line-height:1.5;color:#5a5e4e;min-width:0;max-width:100%;overflow-wrap:break-word}
@media(max-width:900px){.ph-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){
  .ph-grid{grid-template-columns:1fr}
  .ph-card{min-height:0;min-width:0}
  .ph-name{font-size:clamp(18px,5.4vw,21px);hyphens:auto;-webkit-hyphens:auto}
  .ph-sub{hyphens:auto;-webkit-hyphens:auto}
}
.pg-faq{margin-top:36px;max-width:760px}
.pg-a{font-size:16px;line-height:1.65;color:#5a5e4e}
.ph-label{margin-top:36px;margin-bottom:0}
.ph-featured{grid-template-columns:1fr 1fr}
.ph-featured .ph-card{min-height:200px;padding:32px 28px}
.ph-featured .ph-name{font-size:26px}
@media(max-width:600px){.ph-featured{grid-template-columns:1fr}}
/* Other-programs tiles. Inline max-width:120px beats a plain max-width:100%,
   so the wordmark stays 120px and spills into the next tile once the cell
   is narrower than that. Cap it at the tile, and let the grid item shrink. */
.pg_38 > a{min-width:0}
.pg_38 > a img{max-width:min(120px,100%) !important;max-height:42px;width:auto;height:auto;object-fit:contain}
@media (max-width:600px){.ph-featured .ph-card{min-height:0}}
.pg_37{position:relative}
.pg_37::before{content:"";position:absolute;left:0;right:0;top:-10px;bottom:-10px}
/* /programs comparison guide (TPPT-77). Sections after the first sit on the previous one's
   bottom padding. The tables are tables from 900px; below that each row becomes a card with
   its column names as labels, so no column is ever clipped or scrolled out of view. */
.pg_10.ph-sec{padding-top:0}
.pc-link,.pc-table a{border-bottom:1px solid #a98d4b}
.pc-link{color:#1f221c}
.pc-link:hover,.pc-table a:hover{color:#6d5b2a}
.pc-after{margin:24px 0 0}
.pc-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:14px;line-height:1.5;background:#fafaf2;border:1px solid rgba(31,34,28,.18)}
.pc-table caption{caption-side:top;text-align:left;font-size:13.5px;line-height:1.6;color:#5a5e4e;padding:0 0 16px;max-width:760px}
.pc-table th,.pc-table td{padding:14px 12px;text-align:left;vertical-align:top;border-bottom:1px solid rgba(31,34,28,.18);overflow-wrap:break-word}
.pc-table td{color:#5a5e4e}
.pc-table thead th{font-family:'Spline Sans Mono',monospace;font-size:11px;font-weight:500;line-height:1.5;letter-spacing:.12em;text-transform:uppercase;color:#6d5b2a;border-bottom:2px solid #a98d4b}
.pc-table thead th:first-child,.pc-table tbody th{width:17%}
.pc-table tbody th{font-family:'Bodoni Moda',serif;font-size:17px;font-weight:480;line-height:1.3;color:#1f221c;font-optical-sizing:none;font-variation-settings:"opsz" 12,"wght" 480}
.pc-table tbody tr:nth-child(even){background:#f2f1e9}
.pc-none{font-style:italic}
.pc-two thead th:first-child,.pc-two tbody th{width:22%}
.pc-two thead th a{color:#1f221c}
@media (max-width:899px){
  .pc-table,.pc-table caption,.pc-table tbody,.pc-table tr,.pc-table th,.pc-table td{display:block;width:auto}
  .pc-table thead th:first-child,.pc-table tbody th,.pc-two thead th:first-child,.pc-two tbody th{width:auto}
  .pc-table{border:0;background:none}
  /* each cell prints its own label, so the header row (and its links) leaves the page and the accessibility tree */
  .pc-table thead{display:none}
  .pc-table caption{padding-bottom:4px}
  .pc-table tbody tr,.pc-table tbody tr:nth-child(even){background:#fafaf2;border:1px solid rgba(31,34,28,.18);border-top:3px solid #a98d4b;border-radius:6px;padding:18px 20px;margin-top:14px}
  .pc-table th,.pc-table td{padding:0;border:0}
  .pc-table tbody th{font-size:20px;margin-bottom:6px}
  .pc-table td{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:16px;padding:10px 0 0;margin-top:10px;border-top:1px solid rgba(31,34,28,.09)}
  .pc-table td::before{content:attr(data-label);font-family:'Spline Sans Mono',monospace;font-size:11px;font-weight:500;line-height:1.6;letter-spacing:.12em;text-transform:uppercase;color:#6d5b2a}
}
@media (max-width:479px){
  .pc-table td{grid-template-columns:minmax(0,1fr);gap:4px}
}
.pg-faq .pg-d{border-top:1px solid rgba(31,34,28,.18)}
.pg-faq .pg-d:last-child{border-bottom:1px solid rgba(31,34,28,.18)}
.pg-s{display:flex;justify-content:space-between;gap:24px;align-items:baseline;padding:22px 4px;font-family:'Bodoni Moda',serif;font-size:21px;color:#1f221c;font-optical-sizing:none;font-variation-settings:"opsz" 12,"wght" 480}
.pg-x{font-family:'Spline Sans Mono',monospace;color:#6d5b2a;display:inline-block}
.pg-d .pg-a{padding:0 4px 22px;margin:0}
/* A three-card row (/booking-luxury-hotel-through-advisor, TPPT-78): three columns from 900px;
   in the two-column tablet grid the third card spans the row instead of leaving a blank cell. */
@media (min-width:900px){.pg-three{grid-template-columns:repeat(3,1fr)}}
@media (min-width:600px) and (max-width:899px){.pg-three > :last-child{grid-column:span 2}}
