/* Hong Kong Law Tutors: site stylesheet */
:root{
  --ink:#000000;
  --ink-soft:#080808;
  --ink-raise:#0E0E0E;
  --gold:#F8991D;
  --gold-light:#FFB24D;
  --gold-deep:#D97D06;
  --text:#FFFFFF;
  --dim:#B8B8B8;
  --line:rgba(248,153,29,0.28);
  --line-soft:rgba(248,153,29,0.16);
  --max:1120px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{background:var(--ink);color:var(--text);font-family:'Inter',system-ui,-apple-system,sans-serif;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
img{max-width:100%;display:block;height:auto;}
a{color:inherit;text-decoration:none;}
.wrap{max-width:var(--max);margin:0 auto;padding:0 28px;}
h1,h2,h3,h4{font-family:'Bodoni Moda',Georgia,serif;font-weight:500;letter-spacing:-0.01em;}

/* header */
header{position:sticky;top:0;z-index:50;background:rgba(0,0,0,0.96);backdrop-filter:blur(6px);border-bottom:1px solid rgba(248,153,29,0.45);}
header::after{content:"";display:block;height:1px;background:rgba(248,153,29,0.18);margin-top:3px;}
.nav{display:flex;align-items:center;justify-content:space-between;padding:14px 28px;max-width:1280px;margin:0 auto;position:relative;}
.brand{display:flex;align-items:center;flex-shrink:0;}
.brand-logo{height:92px;width:auto;}
nav.links{display:flex;align-items:center;gap:18px;font-size:0.82rem;flex-wrap:nowrap;}
nav.links a{color:var(--dim);transition:color .2s ease;white-space:nowrap;}
nav.links a:hover,nav.links a:focus-visible{color:var(--text);}
nav.links a.current{color:var(--gold);}
.nav-cta{display:inline-block;padding:10px 18px;flex-shrink:0;border:1px solid var(--gold);color:var(--gold);font-size:0.84rem;border-radius:2px;margin-left:16px;transition:background .2s ease,color .2s ease;}
.nav-cta:hover,.nav-cta:focus-visible,.nav-cta.current{background:var(--gold);color:#000;}
nav.links .nav-cta-mobile{display:none;}
.menu-btn{display:none;background:none;border:0;color:var(--text);font-size:1.6rem;cursor:pointer;line-height:1;padding:8px;}

/* hero */
.hero{position:relative;overflow:hidden;padding:96px 28px 100px;
  background:linear-gradient(90deg,rgba(0,0,0,0.95) 0%,rgba(0,0,0,0.84) 48%,rgba(0,0,0,0.45) 100%),
  image-set(url('hk-skyline-night.webp') type('image/webp'),url('hk-skyline-night.jpg') type('image/jpeg')) center 40%/cover no-repeat,var(--ink);}
.hero::after,.page-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,transparent,var(--gold) 20%,var(--gold) 80%,transparent);}
.hero-inner{max-width:var(--max);margin:0 auto;position:relative;z-index:1;}
.hero-eyebrow{display:block;font-family:'Inter',sans-serif;font-size:0.8rem;font-weight:500;letter-spacing:0.18em;text-transform:uppercase;color:var(--gold);line-height:1.5;margin-bottom:22px;}
.hero h1{font-size:clamp(2.3rem,5.4vw,4.3rem);max-width:17ch;line-height:1.07;}
.hero h1 i,.page-hero h1 i{font-style:italic;color:var(--gold);}
.lede{margin-top:26px;max-width:56ch;font-size:1.1rem;color:var(--dim);line-height:1.7;}
.exam-strip{display:flex;flex-wrap:wrap;gap:8px;margin-top:32px;max-width:760px;}
.exam-strip span{font-size:0.78rem;letter-spacing:0.06em;border:1px solid rgba(248,153,29,0.4);padding:5px 12px;border-radius:2px;background:rgba(0,0,0,0.4);}
.hero-actions{display:flex;gap:18px;margin-top:38px;flex-wrap:wrap;}
.btn-primary{background:var(--gold);color:#000;font-weight:500;padding:15px 30px;border-radius:2px;font-size:0.98rem;border:1px solid var(--gold);display:inline-block;cursor:pointer;transition:background .2s ease;}
.btn-primary:hover,.btn-primary:focus-visible{background:var(--gold-light);border-color:var(--gold-light);}
.btn-ghost{padding:15px 30px;border:1px solid rgba(255,255,255,0.35);color:var(--text);border-radius:2px;font-size:0.98rem;display:inline-block;transition:border-color .2s ease,background .2s ease;background:transparent;font-family:inherit;}
.btn-ghost:hover,.btn-ghost:focus-visible{border-color:var(--gold-light);background:rgba(255,178,77,0.08);}
.wa-icon{width:18px;height:18px;vertical-align:-3px;margin-right:8px;fill:currentColor;}
.hero-figures{display:flex;gap:56px;margin-top:64px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:30px;}
.fig .n{font-family:'Bodoni Moda',serif;font-size:2.1rem;color:var(--gold);}
.fig .l{font-size:0.86rem;color:var(--dim);margin-top:4px;max-width:21ch;}

/* sections */
section{padding:88px 28px;}
.alt{background:var(--ink-soft);}
.section-head{max-width:660px;margin-bottom:50px;}
.kicker{color:var(--gold);font-size:0.92rem;margin-bottom:14px;font-family:'Bodoni Moda',serif;font-style:italic;display:flex;align-items:center;gap:12px;}
.kicker::before{content:"";width:32px;height:1px;background:var(--gold);flex-shrink:0;}
.section-head h2{font-size:clamp(1.7rem,3.2vw,2.4rem);line-height:1.2;}
.section-head p{margin-top:16px;color:var(--dim);font-size:1.02rem;max-width:58ch;}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center;}
.section-head.center .kicker{justify-content:center;}
.section-head.center p{margin-left:auto;margin-right:auto;}
.page-hero{position:relative;overflow:hidden;padding:72px 28px 60px;
  background:linear-gradient(90deg,rgba(8,8,8,0.97) 0%,rgba(8,8,8,0.9) 55%,rgba(8,8,8,0.7) 100%),
  image-set(url('victoria-harbour.webp') type('image/webp'),url('victoria-harbour.jpg') type('image/jpeg')) center/cover no-repeat,var(--ink-soft);}
.section-head h1,.page-hero h1{font-size:clamp(2rem,4vw,3rem);line-height:1.15;}
.page-hero .section-head{margin-bottom:0;}
.page-hero .hero-actions{margin-top:30px;}
.page-hero .hero-figures{margin-top:48px;}
.crumbs{font-size:0.8rem;color:var(--dim);margin-bottom:22px;}
.crumbs a{color:var(--dim);}
.crumbs a:hover{color:var(--gold);}
.crumbs span{margin:0 8px;color:var(--gold);}

/* cards */
.subjects-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(248,153,29,0.18);border:1px solid rgba(248,153,29,0.18);}
.subjects-grid.grid-2{grid-template-columns:repeat(2,1fr);}
.subject-card{background:var(--ink-soft);padding:30px 26px;position:relative;transition:background .25s ease;}
.alt .subject-card{background:#000;}
.subject-card::before{content:"";position:absolute;left:0;top:0;height:2px;width:0;background:var(--gold);transition:width .3s ease;}
.subject-card:hover{background:var(--ink-raise);}
.subject-card:hover::before{width:100%;}
.subject-card h3{font-size:1.16rem;margin-bottom:10px;}
.subject-card p{font-size:0.93rem;color:var(--dim);}
.subject-card p + p{margin-top:10px;}
.tag{display:inline-block;font-size:0.75rem;color:var(--gold);border:1px solid rgba(248,153,29,0.4);padding:3px 10px;border-radius:2px;margin-bottom:14px;}
.go{display:inline-block;margin-top:14px;font-size:0.86rem;color:var(--gold);}
.go:hover{text-decoration:underline;}
.card-list{list-style:none;margin:4px 0 0;}
.card-list li{font-size:0.93rem;color:var(--dim);padding:7px 0 7px 18px;position:relative;border-bottom:1px solid rgba(248,153,29,0.12);}
.card-list li:last-child{border-bottom:0;}
.card-list li::before{content:"";position:absolute;left:0;top:15px;width:7px;height:7px;background:var(--gold);transform:rotate(45deg);}

/* approach */
.approach{background:var(--ink-soft);}
.approach-grid{display:grid;grid-template-columns:0.9fr 1.1fr;gap:64px;align-items:start;}
.approach-item{padding:26px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:52px 1fr;gap:20px;}
.approach-item:last-child{border-bottom:1px solid var(--line);}
.approach-item .mark{font-family:'Bodoni Moda',serif;font-style:italic;color:var(--gold);font-size:1.3rem;}
.approach-item h3{font-size:1.06rem;margin-bottom:6px;}
.approach-item p{font-size:0.94rem;color:var(--dim);}

/* steps */
.steps{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);}
.step{padding:30px 26px 30px 0;border-right:1px solid var(--line);}
.step + .step{padding-left:26px;}
.step:last-child{border-right:none;}
.step .idx{font-family:'Bodoni Moda',serif;font-style:italic;color:var(--gold);font-size:1.6rem;display:block;margin-bottom:14px;}
.step h3{font-size:1.04rem;margin-bottom:8px;}
.step p{font-size:0.9rem;color:var(--dim);}

/* two column, places, video */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;}
.two-col.top{align-items:start;}
.place-list{list-style:none;}
.place-list li{padding:18px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:28px 1fr;gap:14px;}
.place-list li:last-child{border-bottom:1px solid var(--line);}
.place-list svg{width:20px;height:20px;stroke:var(--gold);fill:none;stroke-width:1.6;margin-top:3px;}
.place-list h3{font-size:1.06rem;margin-bottom:4px;}
.place-list h3 a:hover{color:var(--gold);}
.place-list p{font-size:0.93rem;color:var(--dim);}
.photo-frame{position:relative;border:1px solid rgba(248,153,29,0.35);overflow:hidden;aspect-ratio:4/3;}
.photo-frame img{width:100%;height:100%;object-fit:cover;}
.photo-frame figcaption{position:absolute;left:0;right:0;bottom:0;padding:14px 18px;font-size:0.82rem;color:#fff;background:linear-gradient(180deg,transparent,rgba(0,0,0,0.8));}
.video-frame{position:relative;aspect-ratio:16/9;width:100%;border:1px solid rgba(248,153,29,0.35);background:#050505;overflow:hidden;}
.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.video-play{position:absolute;inset:0;width:100%;height:100%;border:0;cursor:pointer;background:#050505 center/cover no-repeat;display:flex;align-items:center;justify-content:center;}
.video-play::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0.15),rgba(0,0,0,0.55));}
.video-play .play{position:relative;width:76px;height:76px;border-radius:50%;background:var(--gold);display:flex;align-items:center;justify-content:center;transition:transform .2s ease;}
.video-play .play svg{width:28px;height:28px;margin-left:4px;fill:#000;}
.video-play:hover .play{transform:scale(1.06);}
.video-play .vlabel{position:absolute;left:18px;bottom:14px;font-size:0.84rem;color:#fff;}
.lead-text{color:var(--dim);font-size:1.02rem;line-height:1.75;}
.lead-text + .lead-text{margin-top:14px;}

/* FAQ */
.faq{max-width:820px;border-top:1px solid var(--line);}
.faq details{border-bottom:1px solid var(--line);}
.faq summary{list-style:none;cursor:pointer;padding:22px 40px 22px 0;position:relative;font-family:'Bodoni Moda',serif;font-size:1.12rem;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+";position:absolute;right:4px;top:18px;color:var(--gold);font-family:'Inter',sans-serif;font-size:1.5rem;font-weight:300;transition:transform .2s ease;}
.faq details[open] summary::after{transform:rotate(45deg);}
.faq summary:hover{color:var(--gold-light);}
.faq .answer{padding:0 0 22px;color:var(--dim);font-size:0.97rem;line-height:1.75;max-width:70ch;}
.faq .answer p + p{margin-top:10px;}

/* blog */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(248,153,29,0.18);border:1px solid rgba(248,153,29,0.18);}
.blog-card{background:var(--ink-soft);padding:28px 26px;display:flex;flex-direction:column;gap:10px;position:relative;transition:background .25s ease;min-height:200px;}
.blog-card::before{content:"";position:absolute;left:0;top:0;height:2px;width:0;background:var(--gold);transition:width .3s ease;}
.blog-card:hover{background:var(--ink-raise);}
.blog-card:hover::before{width:100%;}
.blog-card time{font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--gold);}
.blog-card h3{font-size:1.15rem;line-height:1.3;}
.blog-card p{font-size:0.92rem;color:var(--dim);flex:1;}
.blog-card .meta{display:flex;justify-content:space-between;font-size:0.82rem;color:var(--dim);padding-top:12px;border-top:1px solid rgba(248,153,29,0.15);}
.blog-card .meta .go{margin:0;}
.blog-more{margin-top:24px;font-size:0.92rem;}
.blog-more a{color:var(--gold);}

/* tutor profile */
.profile{display:grid;grid-template-columns:240px 1fr;gap:40px;border:1px solid var(--line);padding:36px;background:var(--ink-soft);}
.profile .quals{list-style:none;}
.profile .quals li{font-size:0.86rem;color:var(--dim);padding:8px 0;border-bottom:1px solid var(--line-soft);}
.profile .quals li strong{display:block;color:var(--text);font-weight:500;}
.profile h3{font-size:1.5rem;margin-bottom:6px;}
.profile .role{color:var(--gold);font-size:0.9rem;margin-bottom:18px;display:block;}

/* cta band */
.cta-band{text-align:center;padding:76px 28px;border-top:1px solid rgba(248,153,29,0.35);border-bottom:1px solid rgba(248,153,29,0.35);
  background:radial-gradient(ellipse 700px 260px at 50% 0%,rgba(248,153,29,0.12),transparent 70%),var(--ink);}
.cta-band h2{font-size:clamp(1.6rem,3vw,2.15rem);max-width:26ch;margin:0 auto 26px;}
.cta-band .btn-ghost{border-color:var(--gold);color:var(--gold);}
.cta-band .btn-ghost:hover{background:var(--gold);color:#000;}
.cta-note{margin-top:22px;font-size:0.92rem;color:var(--dim);}
.inline-link,.cta-note a{color:var(--gold);text-decoration:underline;text-underline-offset:2px;}

/* contact + forms */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;}
.contact-detail{margin-top:28px;font-size:0.98rem;color:var(--dim);overflow-wrap:anywhere;}
.contact-detail strong{color:var(--gold);display:block;font-family:'Bodoni Moda',serif;font-size:1.05rem;font-weight:500;margin-bottom:4px;}
.contact-detail a{color:var(--text);}
.contact-detail a:hover{text-decoration:underline;}
.contact-detail + .contact-detail{margin-top:22px;}
form{display:flex;flex-direction:column;gap:16px;}
form[hidden]{display:none !important;}
.field{display:flex;flex-direction:column;gap:6px;min-width:0;}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
label{font-size:0.86rem;color:var(--dim);}
input,select,textarea{width:100%;background:rgba(255,255,255,0.06);border:1px solid rgba(248,153,29,0.4);color:var(--text);padding:12px 14px;font-family:'Inter',sans-serif;font-size:0.95rem;border-radius:2px;}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:1px solid var(--gold);outline-offset:2px;}
select option,select optgroup{background:#000;color:#fff;}
textarea{resize:vertical;min-height:110px;}
.form-note{font-size:0.82rem;color:var(--dim);}
.form-note a{color:var(--gold);text-decoration:underline;}
.req{color:var(--gold);margin-left:3px;}
.hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.form-card{background:#0a0a0a;border:1px solid rgba(255,255,255,.14);border-top:3px solid var(--gold);border-radius:12px;padding:36px 40px;}
.form-card.narrow{max-width:860px;margin:0 auto;}
.form-card h2{font-size:clamp(1.4rem,2.4vw,1.9rem);margin-bottom:12px;}
.form-card .intro{color:var(--dim);font-size:.96rem;line-height:1.7;margin-bottom:24px;}
.form-card input,.form-card select,.form-card textarea{background:#131313;border:1px solid rgba(255,255,255,.18);border-radius:8px;min-height:48px;font-size:1rem;}
.form-card input:focus,.form-card select:focus,.form-card textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(248,153,29,.25);}
.form-card .field label{color:var(--text);font-weight:500;font-size:.9rem;}
.field-error{font-size:12.5px;color:#ff8a80;}
.field.invalid input,.field.invalid select,.field.invalid textarea{border-color:#ff6b5e;}
.form-alert{padding:12px 14px;border-radius:8px;background:rgba(255,107,94,.1);border:1px solid rgba(255,107,94,.45);color:#ffb3ab;font-size:.92rem;}
.form-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px 22px;margin-top:8px;}
.form-actions .btn-primary{border-radius:8px;font-weight:600;font-family:inherit;}
.form-actions .form-note{flex:1 1 260px;}
.form-success{border:1px solid var(--gold);background:rgba(248,153,29,0.07);padding:40px 36px;border-radius:8px;outline:none;animation:fadeUp .35s ease-out;}
.form-success .tick{width:56px;height:56px;border-radius:50%;background:var(--gold);color:#000;display:flex;align-items:center;justify-content:center;margin-bottom:22px;}
.form-success h3{font-size:clamp(1.5rem,3vw,1.9rem);margin-bottom:12px;}
.form-success p{color:var(--dim);max-width:46ch;}
.form-success .btn-ghost{margin-top:26px;cursor:pointer;}
.form-error{border:1px solid #FF4D4D;background:rgba(255,77,77,0.08);color:#FFB3B3;padding:14px 16px;border-radius:8px;font-size:0.92rem;}
@keyframes fadeUp{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}

/* prose */
.prose{max-width:780px;}
.prose h2{font-size:1.5rem;margin:44px 0 12px;}
.prose h2:first-child{margin-top:0;}
.prose h3{font-size:1.2rem;margin:28px 0 10px;}
.prose p,.prose li{color:var(--dim);font-size:1rem;line-height:1.75;}
.prose p + p{margin-top:12px;}
.prose ul{padding-left:20px;margin:10px 0 12px;}
.prose li{margin:6px 0;}
.prose li::marker{color:var(--gold);}
.prose strong{color:#fff;font-weight:500;}
.prose a{color:var(--gold);text-decoration:underline;text-underline-offset:2px;}

/* footer */
footer{background:var(--ink);border-top:1px solid rgba(248,153,29,0.45);padding:44px 28px 36px;color:var(--dim);font-size:0.85rem;}
.footer-links{max-width:var(--max);margin:0 auto 26px;display:flex;flex-wrap:wrap;gap:14px 20px;padding-bottom:24px;border-bottom:1px solid rgba(248,153,29,0.2);}
.footer-links a:hover,.footer-links a.current{color:var(--gold);}
.cookie-settings{background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer;}
.cookie-settings:hover{color:var(--text);}
.footer-sites{max-width:var(--max);margin:0 auto 40px;}
.footer-sites h2{font-family:'Bodoni Moda',serif;font-style:italic;font-weight:400;color:var(--gold-light);font-size:0.95rem;margin-bottom:16px;}
.site-chip-cloud{display:flex;flex-wrap:wrap;gap:10px 12px;}
.site-chip{display:inline-flex;padding:8px 18px;border:1px solid rgba(248,153,29,0.32);border-radius:999px;font-size:0.82rem;transition:border-color .2s ease,color .2s ease,background .2s ease;}
.site-chip:hover,.site-chip:focus-visible{border-color:var(--gold-light);color:var(--text);background:rgba(255,178,77,0.08);}
.footer-brand{max-width:var(--max);margin:0 auto 28px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;}
.footer-logo{height:104px;width:auto;}
.social{display:flex;gap:12px;}
.social a{width:42px;height:42px;border:1px solid rgba(248,153,29,0.35);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .2s ease;}
.social a svg{width:18px;height:18px;fill:var(--dim);}
.social a:hover,.social a:focus-visible{background:var(--gold);border-color:var(--gold);}
.social a:hover svg,.social a:focus-visible svg{fill:#000;}
.footer-legal{max-width:var(--max);margin:0 auto;font-size:0.78rem;line-height:1.6;padding-top:22px;border-top:1px solid rgba(248,153,29,0.2);}
.footer-legal a{color:var(--gold);}

/* cookie banner */
.cookie-banner{position:fixed;left:16px;right:16px;bottom:16px;z-index:1000;max-width:960px;margin:0 auto;background:#0A0A0A;border:1px solid var(--gold);border-radius:2px;padding:20px 24px;display:flex;align-items:center;gap:24px;box-shadow:0 12px 40px rgba(0,0,0,0.6);animation:fadeUp .3s ease-out;}
.cookie-banner p{color:var(--dim);font-size:0.92rem;flex:1;}
.cookie-banner p a{color:var(--gold);text-decoration:underline;}
.cookie-actions{display:flex;gap:12px;flex-shrink:0;}
.cookie-actions button{padding:11px 24px;font-size:0.92rem;cursor:pointer;font-family:inherit;}

/* a11y */
.skip-link{position:absolute;left:-9999px;top:12px;z-index:100;background:var(--gold);color:#000;padding:10px 16px;font-weight:500;border-radius:2px;}
.skip-link:focus{left:16px;}
main:focus{outline:none;}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--gold);outline-offset:3px;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}*{animation:none !important;transition:none !important;}}

/* responsive */
@media (max-width:1180px){
  nav.links{display:none;position:absolute;top:100%;left:0;right:0;background:#000;flex-direction:column;align-items:flex-start;padding:20px 28px;gap:18px;border-bottom:1px solid rgba(248,153,29,0.45);}
  nav.links.open{display:flex;}
  .menu-btn{display:block;}
  .nav-cta{display:none;}
  nav.links .nav-cta-mobile{display:inline-block;margin-left:0;margin-top:4px;}
}
@media (max-width:860px){
  .nav{justify-content:center;padding:12px 22px;}
  .menu-btn{position:absolute;right:14px;top:50%;transform:translateY(-50%);}
  .brand-logo{height:68px;}
  .hero{padding:56px 22px 64px;background:linear-gradient(180deg,rgba(0,0,0,0.86),rgba(0,0,0,0.93)),url('hk-skyline-night.jpg') center/cover no-repeat,var(--ink);}
  .hero-figures{gap:28px;}
  section{padding:60px 22px;}
  section .wrap{padding-left:0;padding-right:0;}
  .page-hero{padding:52px 22px 44px;}
  .approach-grid,.two-col,.contact-grid{grid-template-columns:1fr;gap:36px;}
  .subjects-grid{grid-template-columns:1fr 1fr;}
  .blog-grid{grid-template-columns:1fr;}
  .steps{grid-template-columns:1fr 1fr;}
  .step,.step + .step{border-right:none;border-bottom:1px solid var(--line);padding:24px 16px 24px 0;}
  .field-row{grid-template-columns:1fr;}
  .profile{grid-template-columns:1fr;padding:26px 22px;gap:24px;}
  .footer-brand{flex-direction:column;justify-content:center;}
}
@media (max-width:700px){
  .form-card{padding:24px 18px;}
  .form-actions .btn-primary{width:100%;}
  .cookie-banner{flex-direction:column;align-items:stretch;gap:16px;padding:18px;left:10px;right:10px;bottom:10px;}
  .cookie-actions button{flex:1;}
}
@media (max-width:520px){
  .subjects-grid,.subjects-grid.grid-2,.steps{grid-template-columns:1fr;}
  .hero-actions{flex-direction:column;align-items:stretch;text-align:center;}
  .hero-figures{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:44px;}
  .fig .n{font-size:1.6rem;}
  .fig .l{font-size:0.76rem;}
  .brand-logo{height:60px;}
  .footer-logo{height:88px;}
}

/* legal pages */
.prose .updated{color:var(--gold);font-size:0.9rem;margin-bottom:18px;}
.prose .model{border-left:2px solid var(--gold);padding:14px 18px;background:var(--ink-soft);font-size:0.94rem;}
.prose code{font-size:0.88em;color:var(--gold-light);background:rgba(255,255,255,0.06);padding:1px 6px;border-radius:2px;}
.prose .btn-primary{margin-left:6px;padding:10px 20px;font-family:inherit;}
.link-btn{background:none;border:0;padding:0;font:inherit;color:var(--gold);text-decoration:underline;text-underline-offset:2px;cursor:pointer;}
.table-wrap{overflow-x:auto;margin:14px 0;}
.prose table{width:100%;border-collapse:collapse;font-size:0.92rem;min-width:520px;}
.prose th,.prose td{border:1px solid var(--line);padding:12px 14px;text-align:left;vertical-align:top;color:var(--dim);}
.prose th{color:var(--text);background:var(--ink-soft);font-weight:500;}
