/* Le Baccanti public site — custom-travel page (verbatim from the design mockup; loaded after base.css). */
.editorial-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:75px 55px;align-items:start}
.editorial-story{min-width:0}
.editorial-story img{aspect-ratio:auto;height:100%;object-fit:cover}
.editorial-story .picture{height:350px}
.editorial-story .story-number{font:400 20px/1.2 'Playfair Display',Georgia,serif;color:var(--taupe-ink);margin:24px 0 12px}
.editorial-story .meta{margin-top:0;font-size:14px}
.editorial-story h3{font-size:35px;max-width:550px}
.editorial-story p{max-width:520px;font-size:17px;line-height:1.65;margin:14px 0 22px}
.story-1{grid-column:1/8}
.story-1 .picture{height:430px}
.story-1 h3{font-size:43px}
.story-2{grid-column:9/13;margin-top:120px}
.story-2 .picture{height:290px}
.story-2 h3{font-size:31px}
.story-3{grid-column:1/5;margin-top:50px}
.story-3 .picture{height:320px}
.story-3 h3{font-size:31px}
.story-4{grid-column:6/13}
.story-4 .picture{height:470px}
.story-4 h3{font-size:43px}
.story-5{grid-column:1/13;display:grid;grid-template-columns:1.4fr 1fr;gap:0;background:var(--ink);color:white;margin-block:25px}
.story-5 .picture{height:100%;min-height:430px}
.story-5 .story-copy{padding:45px;align-self:center}
.story-5 .story-number{margin-top:0;color:var(--yellow)}
.story-5 .meta,.story-5 p{color:rgba(255,255,255,.86)}
.story-5 h3{font-size:40px}
.story-5 .text-link{color:#fff}
.story-6{grid-column:1/7}
.story-6 .picture{height:410px}
.story-7{grid-column:8/13;margin-top:85px}
.story-7 .picture{height:340px}
.story-8{grid-column:1/8;margin-top:15px}
.story-8 .picture{height:440px}
.story-8 h3{font-size:43px}
.story-9{grid-column:9/13;margin-top:125px}
.story-9 .picture{height:300px}
.story-9 h3{font-size:31px}
.editorial-grid .meta{flex-wrap:wrap;gap:5px 15px}
.collection-top{margin-bottom:50px}
.collection{padding-bottom:110px}
@media(max-width:1000px){.editorial-grid{gap:55px 30px}.story-2{grid-column:8/13}.story-3{grid-column:1/6}.story-4{grid-column:7/13}.story-9{grid-column:8/13}.story-5 .story-copy{padding:32px}.story-5 h3{font-size:34px}.editorial-story h3{font-size:32px}.story-1 .picture,.story-4 .picture,.story-8 .picture{height:380px}}
@media(max-width:700px){.editorial-grid{display:block}.editorial-story{margin:0 0 55px}.editorial-story .picture{height:320px}.editorial-story h3{font-size:34px}.editorial-story .story-number{margin-top:20px}.editorial-story p{font-size:17px}.story-5{display:block;margin-block:20px 55px}.story-5 .picture{height:310px;min-height:0}.story-5 .story-copy{padding:30px 25px 35px}.story-5 .story-number{margin-top:0}.story-4 .picture,.story-8 .picture{height:390px}.collection{padding-bottom:45px}}
.editorial-grid{gap:38px 32px}
.story-2{grid-column:8/13;margin-top:35px}
.story-3{grid-column:1/6;margin-top:0}
.story-4{grid-column:6/13}
.story-5{margin-block:5px}
.story-7{grid-column:7/13;margin-top:30px}
.story-8{margin-top:0}
.story-9{grid-column:8/13;margin-top:35px}
.editorial-story .story-number{margin:18px 0 8px}
.editorial-story h3{margin:10px 0}
.editorial-story p{margin:12px 0 16px}
.collection-top{margin-bottom:32px}
.collection{padding-bottom:70px}
@media(max-width:1000px){.editorial-grid{gap:32px 26px}.story-2{margin-top:25px}.story-3{margin-top:0}.story-4{grid-column:6/13}.story-7{margin-top:25px}.story-9{margin-top:25px}}
@media(max-width:700px){.editorial-story{margin:0 0 34px}.story-5{margin-block:0 34px}.collection{padding-bottom:28px}.editorial-story .story-number{margin-top:16px}.story-5 .story-number{margin-top:0}}
.inspired-header{padding-bottom:35px}
.mixed-layout{display:grid;gap:45px}
.proposal-row{display:grid;gap:28px;align-items:start}
.regular-row{grid-template-columns:repeat(3,minmax(0,1fr))}
.mixed-story{min-width:0}
.mixed-story .picture{display:block;aspect-ratio:1;overflow:hidden}
.mixed-story img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover}
.mixed-story .story-number{font:400 18px/1.2 'Playfair Display',Georgia,serif;color:var(--taupe-ink);margin:16px 0 9px}
.mixed-story .meta{font-size:14px;flex-wrap:wrap;gap:4px 12px;margin:0 0 12px}
.mixed-story h3{font-size:30px;line-height:1.15;margin:10px 0}
.mixed-story p{font-size:16px;line-height:1.6;margin:12px 0 17px;max-width:580px}
.staggered-row{grid-template-columns:1.35fr 1fr;gap:36px}
.staggered-row .mixed-story:first-child .picture{aspect-ratio:1.5}
.staggered-row .mixed-story:last-child{padding-top:45px}
.staggered-row .mixed-story:last-child .picture{aspect-ratio:1.4}
.staggered-row h3{font-size:37px}
.final-story{display:block;padding-top:8px}
.final-story .mixed-story{display:grid;grid-template-columns:1.35fr 1fr;gap:36px;align-items:center}
.final-story .picture{aspect-ratio:1.6}
.final-story .mixed-copy{padding:10px 0}
.final-story h3{font-size:39px}
.final-story .story-number{margin-top:0}
.collection{padding-bottom:70px}
@media(max-width:1000px){.proposal-row{gap:22px}.mixed-story h3{font-size:27px}.staggered-row h3,.final-story h3{font-size:33px}.staggered-row,.final-story .mixed-story{gap:28px}}
@media(max-width:700px){.inspired-header{padding-bottom:26px}.mixed-layout{gap:34px}.regular-row,.staggered-row{grid-template-columns:1fr;gap:34px}.staggered-row .mixed-story:last-child{padding-top:0}.regular-row .picture{aspect-ratio:1}.staggered-row .mixed-story:first-child .picture,.staggered-row .mixed-story:last-child .picture{aspect-ratio:1.2}.mixed-story h3,.staggered-row h3,.final-story h3{font-size:32px}.final-story .mixed-story{grid-template-columns:1fr;gap:10px}.final-story .picture{aspect-ratio:1.2}.collection{padding-bottom:45px}}
.custom-hero{display:grid;grid-template-columns:1fr 1fr;background:var(--cream);min-height:590px}
.custom-hero-copy{padding:65px clamp(24px,6vw,90px);align-self:center}
.custom-hero h1{font:400 clamp(52px,4.9vw,78px)/1.07 'Playfair Display',Georgia,serif;letter-spacing:-.04em;margin:22px 0 25px}
.custom-hero p{font-size:18px;max-width:490px;color:var(--anthracite-soft)}
.custom-hero-photo{margin:0;position:relative;min-height:590px}
.custom-hero-photo img{width:100%;height:100%;position:absolute;object-fit:cover;object-position:center}
.custom-hero .button{font-size:14px;letter-spacing:.09em;margin-top:20px}
.custom-proof{background:var(--olive);color:#fff;display:grid;grid-template-columns:repeat(3,1fr);gap:35px;padding:35px clamp(24px,6vw,100px)}
.custom-proof>div{border-left:1px solid rgba(255,255,255,.38);padding-left:25px}
.custom-proof strong{font:400 30px/1.2 'Playfair Display',Georgia,serif;display:block;color:var(--yellow)}
.custom-proof span{display:block;color:#fff;font-size:14px;margin-top:8px}
.custom-expertise{padding:85px clamp(24px,9vw,150px)}
.custom-expertise-top{display:grid;grid-template-columns:1.1fr 1fr;gap:7vw;align-items:center}
.custom-expertise h2,.custom-process h2,.custom-team h2{font:400 clamp(38px,4vw,57px)/1.14 'Playfair Display',Georgia,serif;letter-spacing:-.025em;margin:18px 0 25px}
.custom-expertise-top p{font-size:18px;color:var(--anthracite-soft)}
.expertise-points{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;margin-top:40px}
.expertise-points>div{border-top:1px solid var(--line);padding-top:24px}
.expertise-points h3{font:400 28px/1.2 'Playfair Display',Georgia,serif;margin:0 0 14px}
.expertise-points p{color:var(--anthracite-soft);margin:0}
.custom-photo-story{display:grid;grid-template-columns:1.15fr 1fr;background:var(--cream)}
.custom-photo-story figure{margin:0;min-height:440px;position:relative}
.custom-photo-story img{position:absolute;width:100%;height:100%;object-fit:cover}
.custom-photo-story>div{padding:60px clamp(24px,5vw,80px);align-self:center}
.custom-photo-story h2{font:400 43px/1.15 'Playfair Display',Georgia,serif;margin:20px 0}
.custom-photo-story p{font-size:18px;color:var(--anthracite-soft)}
.custom-process{padding:85px clamp(24px,9vw,150px);scroll-margin-top:30px}
.process-intro{display:flex;justify-content:space-between;align-items:end;gap:45px;margin-bottom:40px}
.process-intro h2{max-width:630px;margin-bottom:0}
.process-intro>p{max-width:330px;color:var(--anthracite-soft);margin:0}
.custom-stage{display:grid;grid-template-columns:96px .85fr 1.15fr;gap:30px;border-top:1px solid var(--line);padding:36px 0}
.custom-stage:last-child{border-bottom:1px solid var(--line)}
.custom-stage h3{font:400 34px/1.13 'Playfair Display',Georgia,serif;margin:0 0 12px}
.custom-stage .stage-line{font-size:17px;color:var(--grey);margin:0;max-width:230px}
.stage-detail p{margin:0 0 16px;color:var(--anthracite-soft);font-size:17px}
.stage-outcome{padding-left:18px;border-left:2px solid var(--yellow-deep)}
.stage-outcome strong{display:block;color:var(--ink);font-weight:600;font-size:14px;margin-bottom:4px}
.custom-care{padding:55px clamp(24px,9vw,150px);display:grid;grid-template-columns:1fr 1fr;gap:7vw;background:var(--cream)}
.custom-care h2{font:400 38px/1.2 'Playfair Display',Georgia,serif;margin:15px 0}
.custom-care p{font-size:17px;color:var(--anthracite-soft);margin:0 0 15px}
.custom-team{padding:80px clamp(24px,9vw,150px);display:grid;grid-template-columns:1fr 1fr;gap:6vw;align-items:center}
.custom-team p{font-size:17px;color:var(--anthracite-soft)}
.advisor-line{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.advisor-line figure{margin:0;text-align:center}
.advisor-line img{width:100%;max-width:150px;aspect-ratio:1;object-fit:cover;border-radius:50%}
.advisor-line h3{font:400 22px/1.2 'Playfair Display',Georgia,serif;margin:15px 0 6px}
.advisor-line span{font-size:13px;color:var(--grey);display:block}
.custom-contact{align-items:center}
.custom-contact .button{font-size:15px;letter-spacing:.08em;padding:22px 30px;white-space:normal;align-self:stretch;text-align:center;margin:0 0 16px}
.custom-contact-links{display:flex;flex-direction:column;gap:10px;min-width:290px}
.custom-contact-links>a:not(.button){font-size:17px;text-decoration:none}
.custom-contact .secondary-link{font-size:15px;display:inline-block;margin-top:10px;border-bottom:2px solid var(--yellow);padding-bottom:4px;text-decoration:none}
.custom-quote{padding-block:65px}
.custom-quote blockquote{font-size:32px}
.custom-breadcrumb{font-size:14px;padding:16px clamp(24px,6vw,100px);border-bottom:1px solid var(--line)}
@media(max-width:1050px){.custom-hero h1{font-size:clamp(38px,5.3vw,56px)}.custom-hero-copy{padding:50px 35px}.custom-stage{grid-template-columns:76px 1fr 1.4fr;gap:22px}.custom-team{grid-template-columns:1fr}.advisor-line{max-width:600px}.custom-photo-story h2{font-size:37px}}
@media(max-width:700px){.custom-hero{grid-template-columns:1fr}.custom-hero-copy{padding:45px 24px}.custom-hero h1{font-size:54px}.custom-hero-photo{min-height:340px}.custom-proof{grid-template-columns:1fr;padding:28px 24px;gap:22px}.custom-proof strong{font-size:27px}.custom-expertise{padding:60px 24px}.custom-expertise-top,.expertise-points,.custom-photo-story,.custom-care{grid-template-columns:1fr}.custom-expertise-top{gap:0}.expertise-points{gap:27px;margin-top:25px}.custom-photo-story figure{min-height:320px}.custom-photo-story>div{padding:38px 24px}.custom-process{padding:60px 24px}.process-intro{display:block}.process-intro>p{margin-top:20px}.custom-stage{grid-template-columns:56px minmax(0,1fr);gap:15px;padding:28px 0}.stage-detail{grid-column:2}.custom-stage h3{font-size:30px}.custom-stage .stage-line{max-width:none}.custom-care{padding:45px 24px;gap:5px}.custom-team{padding:60px 24px;gap:28px}.advisor-line{gap:12px}.advisor-line h3{font-size:19px}.advisor-line span{font-size:12px}.custom-contact-links{min-width:0;width:100%}.custom-quote blockquote{font-size:26px}.custom-contact{padding:60px 24px}.custom-contact h2{font-size:43px}}
.custom-team{grid-template-columns:1fr;gap:38px}
.custom-team>div:first-child{max-width:800px}
.advisor-line{grid-template-columns:repeat(4,minmax(0,1fr));max-width:none;gap:35px 25px}
.advisor-line img{max-width:145px}
.advisor-line h3{font-size:23px}
.advisor-line span{font-size:14px}
@media(max-width:700px){.custom-team{gap:28px}.advisor-line{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 20px}.advisor-line img{max-width:135px}.advisor-line h3{font-size:21px}.advisor-line span{font-size:14px}}
.custom-hero-photo img{filter:brightness(1.24) saturate(1.04)}
.custom-photo-story img{filter:brightness(1.32) saturate(1.03)}
.custom-hero-photo:after,.custom-photo-story figure:after{display:none}
/* Additions to the mockup — task #871: palette band, big numerals (shared class "numeral" from base.css). */
.expertise-points .numeral{display:block;margin:0 0 18px}
.expertise-points>div{padding-top:28px}
.custom-stage .numeral{display:block;margin-top:-6px}
.custom-expertise h2,.custom-process h2,.custom-team h2,.custom-hero h1,.custom-stage h3,.expertise-points h3{overflow-wrap:break-word}
.custom-contact .secondary-link:hover{border-bottom-color:#fff}
@media(max-width:700px){.custom-stage .numeral{margin-top:-4px}.custom-hero h1{font-size:clamp(40px,13vw,54px)}}
/* Review #871: tablets (3 narrow columns with long German/Italian titles), contact links hover. */
@media(min-width:701px) and (max-width:900px){:where(html:not([lang="en"])) .custom-proof{gap:22px;padding-inline:24px}:where(html:not([lang="en"])) .custom-proof>div{padding-left:18px}:where(html:not([lang="en"])) .custom-proof strong{font-size:24px}:where(html:not([lang="en"])) .expertise-points{gap:24px}:where(html:not([lang="en"])) .expertise-points h3{font-size:23px}:where(html:not([lang="en"])) .custom-expertise,:where(html:not([lang="en"])) .custom-process{padding-inline:clamp(24px,5vw,60px)}}
.custom-contact-links>a:not(.button){align-self:flex-start;border-bottom:1px solid transparent;transition:border-color .2s}
.custom-contact-links>a:not(.button):hover{border-bottom-color:var(--yellow)}
@media(prefers-reduced-motion:reduce){.custom-contact-links>a:not(.button){transition:none}}
/* Fixes #871: round portraits (the height attribute must not win over the square ratio), yellow accent on the dividers above the numerals (same as the home page). */
.advisor-line img{display:block;height:auto;margin:0 auto}
.expertise-points>div{position:relative}
.expertise-points>div:before{content:'';position:absolute;left:0;top:-2px;width:72px;height:3px;background:var(--yellow)}
/* Polish #871: on phones (and in the narrow columns of tablets) the hand-set line breaks of these headings left single
   words alone on a line; the breaks are dropped there (the page puts a space before each of them) and the browser balances
   the lines. The two sentences of "Care for you. / Respect for…" are separate blocks, balanced one by one. Chinese keeps its
   breaks: they fall between phrases, where the browser alone could not tell. */
.custom-care h2 span{display:block}
@media(max-width:1050px){html:not([lang^="zh"]) .custom-photo-story h2 br,html:not([lang^="zh"]) .custom-care h2 br{display:none}.custom-photo-story h2,.custom-care h2 span{text-wrap:balance}}
@media(max-width:700px){html:not([lang^="zh"]) .custom-team h2 br,html:not([lang^="zh"]) .custom-contact h2 br{display:none}.custom-team h2,.custom-contact h2{text-wrap:balance}}
/* Chinese: a break is dropped only below the width at which its second phrase stops fitting on one line (a lone character would end the heading).
   Widths for the sizes set further down (34px story and team, 36px closing at 400px and below; 32px closing at 340px and below):
   the closing heading's "您最想发现什么？" always fits, so it keeps its break (dropping it split "发|现" at 390). */
@media(max-width:389px),(min-width:401px) and (max-width:420px){html[lang^="zh"] .custom-photo-story h2 br{display:none}}
@media(max-width:353px){html[lang^="zh"] .custom-team h2 br{display:none}}
/* Re-check #871: balancing alone still left one word per line where the column is too narrow for the type ("discover",
   "descubrir", "Faites / … / avec", "Cuidar", "La"): the headings step down a little on small phones and in the two-column
   tablet layout, and the story heading is balanced up to 1250 px ("…who we / are.", "…de / nosotros."). */
@media(max-width:400px){:where(html:not([lang="en"])) .custom-contact h2{font-size:36px}:where(html:not([lang="en"])) .custom-photo-story h2,:where(html:not([lang="en"])) .custom-care h2,:where(html:not([lang="en"])) .custom-team h2{font-size:34px}}
@media(max-width:340px){.custom-contact h2{font-size:32px}}
@media(min-width:701px) and (max-width:1050px){:where(html:not([lang="en"])) .custom-photo-story h2{font-size:clamp(30px,3.6vw,37px)}:where(html:not([lang="en"])) .custom-care h2{font-size:clamp(30px,3.7vw,38px)}}
@media(min-width:1051px) and (max-width:1250px){html:not([lang^="zh"]) .custom-photo-story h2 br{display:none}.custom-photo-story h2{text-wrap:balance}}
/* Chinese story heading: same rule as above for the two ranges where its second phrase does not fit ("部分。" alone). */
@media(min-width:701px) and (max-width:840px),(min-width:1051px) and (max-width:1180px){html[lang^="zh"] .custom-photo-story h2 br{display:none}}
/* Alignment with the mockup (English): its larger hero title on 3 lines, the stepped-down tablet and small-phone headings above
   stay for the longer languages only. The tablet and phone sizes stop short of the column width, so "connections." never breaks. */
html[lang="en"] .custom-hero h1{font-size:clamp(52px,5.4vw,82px)}
@media(min-width:701px) and (max-width:1050px){html[lang="en"] .custom-hero h1{font-size:clamp(46px,calc(9.5vw - 14px),60px)}}
@media(max-width:700px){html[lang="en"] .custom-hero h1{font-size:clamp(46px,calc(19vw - 10px),54px)}}
/* Mockup: a wrapped hero button label is left-aligned; the portrait keeps the mockup's gap to the name; the closing band
   centres its two blocks once it stacks (site.css aligns stacked closing bands to the left from 900 px down). */
.custom-hero .button{text-align:left}
.advisor-line h3{margin-top:22px}
@media(min-width:701px) and (max-width:900px){.contact.custom-contact{align-items:center}}
/* English tablets: the mockup's 28px point titles, a touch smaller just above 700 px, where the column (held at its share of
   the grid) is narrower than "Relationships". Stage titles are balanced rather than leaving one word alone ("…shape / it."). */
@media(min-width:701px) and (max-width:900px){html[lang="en"] .expertise-points h3{font-size:clamp(24px,calc(4.3vw - 4px),28px)}}
.custom-stage h3{text-wrap:balance}
/* French phones keep the stacked stage: its titles bind three words with no-break spaces ("nous vous écoutons."), which do not
   fit the text column beside the numeral. */
@media(max-width:700px){html[lang^="fr"] .custom-stage{grid-template-columns:minmax(0,1fr);gap:14px}html[lang^="fr"] .stage-detail{grid-column:auto}html[lang^="fr"] .custom-stage .numeral{margin-top:0}}
/* French tablets: the same no-break groups ("nous vous écoutons.", 308px at 34px) are wider than the title column of the
   three-column stage up to about 1075px, so the title and the detail stack beside the numeral, as on the mockup's phones. */
@media(min-width:701px) and (max-width:1050px){html[lang^="fr"] .custom-stage{grid-template-columns:76px minmax(0,1fr)}}
@media(min-width:1051px) and (max-width:1100px){html[lang^="fr"] .custom-stage{grid-template-columns:96px minmax(0,1fr)}}
@media(min-width:701px) and (max-width:1100px){html[lang^="fr"] .stage-detail{grid-column:2}html[lang^="fr"] .custom-stage .stage-line{max-width:none}}
