:root{
  --ink:#10343a;
  --paper:#f4efe5;
  --cream:#fffaf1;
  --fjord:#087f8c;
  --coral:#e46354;
  --gold:#d6a23d;
  --violet:#7052a0;
  --pine:#173f3d;
  --sky:#bedce1;
  --line:rgba(16,52,58,.18)
}

body{font-size:16px;line-height:1.6;background:var(--paper)}
.site-header{background:rgba(244,239,229,.97);gap:26px}
.site-header nav{gap:18px;font-size:.81rem;white-space:nowrap}
.site-header nav a{position:relative}
.site-header nav a:after{content:"";position:absolute;left:0;right:100%;bottom:-6px;height:2px;background:var(--coral);transition:right .2s}
.site-header nav a:hover:after{right:0}
.language{display:flex;align-items:center;gap:6px;font-size:.76rem;white-space:nowrap}
.language a{padding:5px 2px}
.language a.current{font-weight:700;color:var(--fjord);text-decoration:underline;text-underline-offset:4px}

.hero{min-height:min(720px,calc(100vh - 88px));grid-template-columns:minmax(0,52%) minmax(380px,48%);background:var(--cream)}
.hero-copy{position:relative;z-index:2;min-width:0;padding:clamp(64px,7vw,108px) clamp(34px,6.2vw,98px)}
.hero h1{font-size:clamp(3.35rem,4.75vw,5.35rem);line-height:.98;max-width:720px;letter-spacing:-.035em;overflow-wrap:normal;word-break:normal}
.hero .intro{font-size:clamp(1.03rem,1.3vw,1.28rem);line-height:1.55;max-width:620px}
.hero .actions{margin:28px 0}
.title-note{font-size:.98rem;line-height:1.45;max-width:650px;margin-bottom:0}
.portrait-wrap{min-height:630px;overflow:visible;z-index:0;isolation:isolate}
.portrait-wrap:before{content:"";position:absolute;width:390px;aspect-ratio:1;border-radius:50%;left:-68px;top:47%;transform:translateY(-50%);background:var(--violet);z-index:0;pointer-events:none}
.portrait{position:relative;z-index:1}
.portrait-caption{border-left:4px solid var(--violet);z-index:2}

.section{padding:clamp(72px,7vw,104px) clamp(24px,6.5vw,104px)}
.section-heading{grid-template-columns:54px minmax(0,1fr);gap:20px;margin-bottom:42px;max-width:1100px}
.section-heading h2{font-size:clamp(2.65rem,4.1vw,4.35rem);line-height:1;margin-bottom:12px;letter-spacing:-.025em}
.section-heading>p{font-size:.82rem}
.section-heading div>p{max-width:760px;font-size:1.02rem}
.news{background:linear-gradient(135deg,var(--cream) 0%,#f5eadf 100%);border-top:8px solid var(--coral)}
.news-card{border-bottom:5px solid var(--gold);box-shadow:0 14px 34px rgba(16,52,58,.08)}
.news-card h3{font-size:clamp(1.45rem,2vw,1.9rem)}
.news-card>div{padding:28px}

.catalogue{background:var(--paper)}
.filters{max-width:920px;gap:8px}
.filters button{font-size:.87rem;padding:8px 13px;background:rgba(255,255,255,.25)}
.filters button:hover{border-color:var(--fjord);color:var(--fjord)}
.books-grid{gap:40px 24px}
.book-cover{overflow:hidden;border-radius:2px}
.book-cover.square{aspect-ratio:1/1}
.book-cover.square img{aspect-ratio:1/1;object-fit:cover}
.book-info h3{font-size:1.23rem}

.where-to-buy{margin-top:76px;padding:32px;display:grid;grid-template-columns:1.15fr .85fr;gap:34px;background:var(--sky);border-left:8px solid var(--violet)}
.where-to-buy p:last-of-type{margin-bottom:18px}
.shop-links{display:flex;gap:8px;flex-wrap:wrap}
.shop-links a{padding:8px 12px;border:1px solid rgba(16,52,58,.3);background:rgba(255,255,255,.42);font-size:.86rem;font-weight:700}
.shop-links a:hover{background:var(--ink);color:#fff}
.where-to-buy blockquote{margin:0;padding:22px 24px;background:var(--cream);font:italic 600 1.22rem/1.45 'Playfair Display',serif;border-bottom:5px solid var(--gold)}

.upcoming{background:linear-gradient(145deg,var(--ink),#152d42 70%,#30274a)}
.upcoming-grid h3{font-size:clamp(1.45rem,2vw,1.9rem)}
.upcoming-grid article{border-top:4px solid var(--gold)}
.upcoming-grid article:nth-child(even){border-color:var(--violet)}

.about{background:linear-gradient(180deg,var(--paper),var(--cream))}
.about-grid .lead{font-size:clamp(1.35rem,2vw,1.9rem)}
.about-grid blockquote{font-size:clamp(1.45rem,2.2vw,1.9rem)}

.visits{background:linear-gradient(145deg,var(--pine),var(--ink));border-top:8px solid var(--fjord)}
.visit-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:0 0 34px}
.visit-grid article{position:relative;min-height:190px;padding:26px 22px;background:rgba(255,255,255,.08);border-top:4px solid var(--coral)}
.visit-grid article:nth-child(2){border-color:var(--gold)}
.visit-grid article:nth-child(3){border-color:var(--violet)}
.visit-grid article:nth-child(4){border-color:var(--fjord)}
.visit-grid h3{font:600 1.35rem/1.2 'Playfair Display',serif;margin:10px 0 12px}
.visit-grid p{font-size:.88rem;color:rgba(255,255,255,.76);margin:0}
.visit-card{max-width:none;margin:0;background:rgba(255,255,255,.1);display:grid;grid-template-columns:1.2fr .8fr;gap:28px;padding:30px}
.visit-card p{margin:0}

.contact{background:linear-gradient(120deg,var(--gold),#e9bc56 62%,var(--coral))}
.contact h2{font-size:clamp(3rem,5vw,5.2rem);line-height:1.02}

@media(max-width:1280px){
  .site-header nav{display:none;position:absolute;left:0;right:0;top:88px;background:var(--paper);padding:24px clamp(22px,5vw,76px);flex-direction:column;gap:18px;white-space:normal;box-shadow:0 14px 24px rgba(16,52,58,.1)}
  .site-header nav.open{display:flex}
  .menu-toggle{display:block;margin-left:auto}
  .visit-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:1000px){
  .hero{grid-template-columns:1fr;min-height:0}
  .hero-copy{padding:72px clamp(24px,8vw,74px)}
  .hero h1{max-width:760px}
  .portrait-wrap{min-height:620px}
  .portrait-wrap:before{width:310px;left:-58px;top:76px;transform:none}
  .where-to-buy{grid-template-columns:1fr}
}
@media(max-width:680px){
  .site-header nav{top:72px}
  .language{font-size:.73rem}
  .hero-copy{padding:58px 24px 48px}
  .hero h1{font-size:clamp(2.7rem,13vw,3.5rem);line-height:1.01;letter-spacing:-.025em}
  .hero .intro{font-size:1rem}
  .portrait-wrap{min-height:500px}
  .portrait-wrap:before{width:230px;left:-44px;top:44px}
  .section{padding:64px 20px}
  .section-heading{grid-template-columns:30px 1fr;gap:12px;margin-bottom:34px}
  .section-heading h2{font-size:clamp(2.25rem,11vw,3.05rem)}
  .filters{gap:6px;margin-bottom:30px}
  .filters button{font-size:.8rem;padding:7px 10px}
  .book-info h3{font-size:1rem}
  .where-to-buy{margin-top:52px;padding:22px 18px}
  .where-to-buy blockquote{font-size:1.05rem}
  .visit-grid{grid-template-columns:1fr}
  .visit-grid article{min-height:0}
  .visit-card{grid-template-columns:1fr;padding:24px 20px}
  .contact{padding:88px 20px}
  .contact h2{font-size:clamp(2.75rem,12vw,4rem)}
}

.book-blurb{max-width:780px;font-size:1.08rem;line-height:1.72}
.book-blurb .lead{font:600 clamp(1.45rem,2.4vw,2.05rem)/1.35 'Playfair Display',serif;color:var(--fjord)}
