.guide-hub { --hub-rust:#9e4828; --hub-green:#344e40; }
.guide-hub [hidden] { display:none !important; }
.guide-hub main :where(div,section,article,aside) { min-width:0; }
.guide-hub :where(h1,h2,h3,p) { overflow-wrap:break-word; }
.guide-hub :where(a,input,button):focus-visible { outline:3px solid var(--hub-green); outline-offset:5px; }
.guide-hub :where(section,main)[id] { scroll-margin-top:32px; }
.guide-hub h1,.guide-hub h2,.guide-hub h3 { font-family:var(--gg-serif); font-weight:400; letter-spacing:-.035em; }
.guide-hub .gg-btn-primary { background:var(--hub-rust); border-color:var(--hub-rust); box-shadow:none; }
.guide-hub .gg-btn-primary:hover { background:#813a20; }
.hub-skip { position:absolute; top:-100px; left:15px; z-index:100; padding:16px; background:white; }
.hub-skip:focus { top:12px; }
.hub-masthead { display:flex; justify-content:space-between; gap:20px; padding:26px 0 22px; font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:#6b5f50; }
.hub-masthead span:first-child { font-weight:700; color:var(--hub-rust); }
.hub-hero { position:relative; isolation:isolate; border-radius:16px; overflow:hidden; min-height:575px; display:flex; align-items:center; padding:55px 44px; }
.hub-hero-image { position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; object-position:65% 50%; }
.hub-hero::before { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,#f3eadcf5 0%,#f3eadceb 28%,#f3eadcb3 42%,#f3eadc00 64%); }
.hub-hero-copy { max-width:510px; width:49%; }
.hub-kicker { margin:0 0 18px; font-size:.7rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--hub-rust); line-height:1.6; }
.hub-hero h1 { font-size:clamp(2.8rem,4.8vw,4.2rem); line-height:1.05; margin:0 0 24px; }
.hub-hero-copy>p:not(.hub-kicker) { max-width:370px; margin:0 0 28px; line-height:1.8; font-size:1.04rem; color:#4a3c30; }
.hub-hero .gg-btn { gap:22px; }
.hub-image-credit { position:absolute; right:14px; bottom:12px; padding:5px 7px; border-radius:3px; font-size:.6rem; color:#483b2d; background:#fff9eddf; }
.hub-section { padding:68px 0; }
.hub-section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:26px; margin-bottom:30px; }
.hub-section-heading .hub-kicker { margin-bottom:8px; }
.hub-section-heading h2 { font-size:clamp(2rem,3.1vw,2.8rem); line-height:1.15; margin:0; }
.hub-text-link { display:inline-flex; align-items:center; gap:16px; text-decoration:none; border:0; border-bottom:1px solid #a79983; padding:6px 0; color:var(--hub-rust); font-family:var(--gg-sans); font-size:.86rem; font-weight:600; background:transparent; cursor:pointer; }
.hub-text-link:hover { border-color:var(--hub-rust); }
.hub-story-grid { display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:30px; }
.hub-story { min-width:0; }
.hub-story-link { display:flex; flex-direction:column; height:100%; color:inherit; text-decoration:none; }
.hub-story-image { position:relative; overflow:hidden; border-radius:9px; margin-bottom:22px; height:220px; background:#e5dac9; }
.hub-story-image img { width:100%; height:100%; object-fit:cover; object-position:72% center; transition:transform .25s ease; }
.hub-story-image>span { position:absolute; right:7px; bottom:7px; font-size:.55rem; padding:3px 5px; border-radius:3px; color:#493e31; background:#fff9edef; }
.hub-story-link:hover img { transform:scale(1.025); }
.hub-story .hub-kicker { margin-bottom:9px; font-size:.65rem; }
.hub-story h3 { font-size:clamp(1.65rem,2.2vw,2.05rem); line-height:1.15; margin:0 0 13px; }
.hub-story:first-child h3 { font-size:clamp(1.9rem,2.6vw,2.35rem); }
.hub-story-copy { margin:0 0 15px; line-height:1.7; color:var(--gg-ink-soft); font-size:.94rem; }
.hub-story-detail { color:#6d6153; font-size:.7rem; margin-top:auto; padding-top:4px; }
.hub-read { display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid #d7cbb9; padding:20px 0 13px; font-size:.83rem; color:var(--hub-rust); font-weight:600; }
.hub-read>span { font-size:1.1rem; }
.hub-note { background:#e9ece3; color:#2b4234; padding:44px 0; }
.hub-note-inner { display:grid; grid-template-columns:70px 1.05fr 1fr; gap:26px; align-items:start; }
.hub-note-number { font-size:.74rem; padding-top:6px; }
.hub-note h2 { font-size:clamp(1.65rem,2.7vw,2.4rem); line-height:1.2; margin:0; }
.hub-note p { margin:0 0 12px; font-size:.94rem; line-height:1.8; }
.hub-note .hub-text-link { color:#2b4234; }
.hub-library { padding-top:70px; }
.hub-search { width:310px; max-width:100%; flex-shrink:0; }
.hub-search label { display:block; color:#645747; font-size:.73rem; margin-bottom:9px; }
.hub-search>div { display:flex; border:1px solid #c5b8a5; background:#fffaf3; border-radius:7px; }
.hub-search input { width:100%; min-width:0; padding:13px 11px; border:0; border-radius:7px; background:transparent; color:var(--gg-ink); font:inherit; font-size:.87rem; appearance:none; }
.hub-search input::-webkit-search-cancel-button { display:none; }
.hub-search button { padding:0 13px; border:0; background:none; color:#72604b; font-size:1.35rem; cursor:pointer; }
.hub-count { color:#736350; font-size:.75rem; margin:0 0 10px; }
.hub-directory { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:1fr 1fr; column-gap:48px; }
.hub-directory-item { min-width:0; border-top:1px solid #dcd1be; }
.hub-directory-item>a { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:18px 2px; min-height:110px; color:inherit; text-decoration:none; }
.hub-directory-label { display:block; color:#746551; font-size:.63rem; letter-spacing:.07em; text-transform:uppercase; margin-bottom:5px; }
.hub-directory-title { display:block; font-family:var(--gg-serif); font-size:1.24rem; line-height:1.3; letter-spacing:-.02em; }
.hub-directory-arrow { flex:0 0 auto; color:#8c6a51; font-size:1.15rem; }
.hub-directory-item>a:hover { color:var(--hub-rust); }
.hub-empty { padding:30px 0; border-top:1px solid var(--gg-line); }
.hub-empty h3 { font-size:1.7rem; }
.hub-empty p { line-height:1.7; }
.hub-finder { display:flex; justify-content:space-between; align-items:center; gap:24px; background:#efe5d5; padding:40px; border-radius:12px; margin:4px 0 60px; }
.hub-finder .hub-kicker { margin-bottom:8px; }
.hub-finder h2 { font-size:2rem; margin:0 0 10px; }
.hub-finder p:not(.hub-kicker) { margin:0; color:#665743; line-height:1.7; font-size:.92rem; }
.hub-finder .gg-btn { flex-shrink:0; }
.hub-footer { padding:33px 0; border-top:1px solid #dfd4c1; }
.hub-footer-top { display:flex; justify-content:space-between; align-items:center; gap:25px; }
.hub-footer-brand { font-family:var(--gg-serif); font-size:1.13rem; text-decoration:none; }
.hub-footer-brand span { color:var(--hub-rust); }
.hub-footer nav { display:flex; flex-wrap:wrap; gap:20px; font-size:.78rem; }
.hub-footer nav a { text-decoration:none; }
.hub-footer p { font-size:.72rem; color:#796a58; margin:22px 0 0; line-height:1.7; }
@media (max-width:900px) {
 .hub-hero { min-height:520px; padding:40px 28px; }
 .hub-hero::before { background:linear-gradient(90deg,#f3eadcf5 0%,#f3eadcea 32%,#f3eadcb8 48%,#f3eadc00 78%); }
 .hub-hero-copy { width:57%; }
 .hub-hero h1 { font-size:3.1rem; }
 .hub-story-grid { gap:20px; grid-template-columns:1fr 1fr; }
 .hub-story:first-child { grid-column:1/-1; }
 .hub-story:first-child .hub-story-link { display:grid; grid-template-columns:1fr 1fr; gap:0 25px; }
 .hub-story:first-child .hub-story-image { grid-row:1/6; height:100%; min-height:270px; margin:0; }
 .hub-note-inner { grid-template-columns:1fr 1fr; }
 .hub-note-number { display:none; }
 .hub-section-heading { align-items:flex-start; }
 .hub-library .hub-section-heading { flex-direction:column; gap:20px; }
 .hub-search { width:100%; max-width:440px; }
 .hub-footer-top { align-items:flex-start; flex-direction:column; }
}
@media (max-width:600px) {
 .hub-masthead { padding:23px 0 18px; font-size:.63rem; }
 .hub-masthead span:last-child { display:none; }
 .hub-hero { display:flex; flex-direction:column; padding:0; min-height:0; background:#f0e6d6; border-radius:12px; }
 .hub-hero::before { display:none; }
 .hub-hero-copy { padding:30px 23px; width:100%; }
 .hub-hero .hub-kicker { font-size:.6rem; margin-bottom:16px; }
 .hub-hero h1 { font-size:clamp(2.3rem,9.2vw,3.4rem); margin-bottom:18px; }
 .hub-hero-copy>p:not(.hub-kicker) { font-size:.95rem; line-height:1.7; margin-bottom:23px; }
 .hub-hero-image { position:static; z-index:auto; order:2; width:100%; height:auto; aspect-ratio:16/10; object-position:70% center; }
 .hub-image-credit { font-size:.55rem; right:9px; bottom:9px; }
 .hub-section { padding:42px 0; }
 .hub-section-heading { flex-direction:column; gap:15px; margin-bottom:25px; }
 .hub-section-heading h2 { font-size:2rem; }
 .hub-story-grid { grid-template-columns:1fr; gap:32px; }
 .hub-story:first-child .hub-story-link { display:flex; }
 .hub-story:first-child .hub-story-image,.hub-story-image { height:auto; min-height:0; aspect-ratio:16/10; margin:0 0 20px; }
 .hub-story h3,.hub-story:first-child h3 { font-size:1.9rem; }
 .hub-note { padding:34px 0; }
 .hub-note-inner { grid-template-columns:1fr; gap:17px; }
 .hub-note h2 { font-size:1.95rem; }
 .hub-directory { grid-template-columns:1fr; }
 .hub-directory-item>a { min-height:95px; }
 .hub-finder { flex-direction:column; align-items:flex-start; padding:28px 22px; margin:0 0 40px; }
 .hub-finder h2 { font-size:1.8rem; }
 .hub-footer nav { gap:14px 20px; }
}
@media (max-width:380px) {
 .guide-hub .gg-logo-text { font-size:15px; }
 .guide-hub .gg-logo { gap:7px; }
 .guide-hub .gg-header-actions { margin-left:auto; }
 .guide-hub .gg-logo-mark { width:34px; height:34px; }
}
@media (prefers-reduced-motion:reduce) { .hub-story-image img { transition:none; } html:has(.guide-hub) { scroll-behavior:auto; } }
